• Spring Cloud 框架 -- OpenFeign


    什么是 OpenFeign

    前面无论是基本调用,还是 Hystrix ,我们实际上都是通过手动调用 RestTemplate 来实现远程调用。

    使用 RestTemplate 存在一个问题:繁琐,每一个请求,参数不同,请求地址不同,返回数据类型不同,其他都是一样的,所以我们希望能够对请求进行简化。

    简化方案就是 OpenFeign。

    Spring Cloud OpenFeign,提供 OpenFeign 集成到 Spring Boot 应用中的方式,主要解决微服务之间的调用问题。

    OpenFeign 源于 Netflix Feign , 但是 Netflix 中的组件已经停止开源工作,OpenFeign 是 Spring Cloud 团队在 Netflix Feign 的基础上开发出来的声明式服务调用组件。

    一个 Hello 示例

    继续使用之前的 provider。

    新建一个 Spring Boot 模块,创建时,选择 OpenFeign 依赖,如下:

    项目创建成功后,在 application.properties 中进行配置,将其注册到eureka 中:

    spring.application.name=openfeign
    server.port=4000
    eureka.client.service-url.defaultZone = http://localhost:1111/eureka
    

    接下来 ,在启动类上添加注解,开启 Feign 的支持:

    @SpringBootApplication
    @EnableFeignClients
    public class OpenfeignApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(OpenfeignApplication.class, args);
        }
    
    }
    

    接下来,定义 HelloService 接口,去使用 OpenFeign:

    @FeignClient("provider") // 调用的服务名
    public interface HelloService {
    
        @GetMapping("/hello")
        String hello(); // 这里的方法名随意取
    }
    

    最后调用 HelloController ,对 HelloService 进行测试:

    @RestController
    public class HelloController {
        @Autowired
        HelloService helloService;
    
        @GetMapping("/hello")
        public String hello(){
            return helloService.hello();
        }
    }
    

    先启动注册中心 eureka

    再启动 provider

    最后启动 openfeign

    打开 eureka 的后台 http://localhost:1111/:

    可以看到,openfeign 和 provider 都注册到 eureka 上了。

    再访问 http://localhost:4000/hello , 效果如下:

    ok!

    每天学习一点点,每天进步一点点。

  • 相关阅读:
    02. 爬取get请求的页面数据
    配置visual studio code进行asp.net core rc2的开发(转载jeffreywu)
    C#条件编译,发布多平台和多种选择性的项目
    控制台当前行显示进度条,不换行
    对"使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework"增加说明
    ASP.NET Core文章汇总
    jquery.tmpl 用法(附上详细案例)
    Pure扩展站--个人博客
    使用@media做自适应
    简单的计划任务实现。。。
  • 原文地址:https://www.cnblogs.com/youcoding/p/13441084.html
Copyright © 2020-2023  润新知