zoukankan      html  css  js  c++  java
  • 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!

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

  • 相关阅读:
    Go笔记
    EFCore CodeFirst操作MySQL
    基于NET Core简单操作Kafka
    NETCore2.2/3.0+使用带有权限验证的Swagger
    Net操作RabbitMQ
    Mysql报错问题汇总
    GDSM自动化部署shell脚本
    NET操作Redis
    ViewState原理
    使用jsonp跨域请求
  • 原文地址:https://www.cnblogs.com/youcoding/p/13441084.html
Copyright © 2011-2022 走看看