zoukankan      html  css  js  c++  java
  • 03. Feign

    03. Feign

    Feign使用面向api编程, 来简化编程 ,默认使用RoundRobbin,可以不需要额外配置负载均衡

    在ribbon的基础上修改

    1. microsoft-api
    • 修改api的pom.xml添加

              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-openfeign</artifactId>
              </dependency>
      
    • 添加一个接口

      //name对应微服务名称
      @FeignClient("MICROSOFT-PROVIDER")
      public interface DeptClientService {
          //表示发送/provider/add请求到MICROSOFT-PROVIDER所在的服务
          @PostMapping(path = {"/provider/add"})
          boolean add(@RequestBody Dept dept);
      
          @GetMapping(path = "/provider/get/{id}")
           Dept get(@PathVariable("id") Integer id);
      
          @GetMapping(path = "/provider/get")
           List<Dept> list();
      }
      
    1. 添加一个模块, 将consumer拷贝
    • 添加依赖

              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-openfeign</artifactId>
              </dependency>
      
    • 修改controller

      @RestController
      @RequestMapping("/consumer")
      public class DeptConsumerController {
          @Autowired
          DeptClientService service;
          //controller中的mapping可以与接口中定义的不同,但是api接口中的mapping要与微服务定义的mapping相同
          @PostMapping(path = {"/add"})
          public boolean add(@RequestBody Dept dept){
              return service.add(dept);
          }
          @GetMapping(path = "/get/{id}")
          public Dept get(@PathVariable("id") Integer id){
              return service.get(id);
          }
      
          @GetMapping(path = "/get")
          public List<Dept> list(){
              return service.list();
          }
      }
      
    • 修改主启动类

      //扫描对应@FeignClient修饰的接口所在包
      @EnableFeignClients({"com.chz.microsoftapi.service"})
      @EnableEurekaClient
      @SpringBootApplication
      public class MicrosoftConsumer80FeignApplication {
      
      	public static void main(String[] args) {
      		SpringApplication.run(MicrosoftConsumer80FeignApplication.class, args);
      	}
      }
      

      如果使用RoundRobbin来负载均衡就行, 那么就不用配置Ribbon

  • 相关阅读:
    043_生成随机密码
    042_提示用户输入年份后测试判断是否为闰年
    041_查找 Linux 系统中的僵尸进程
    040_删除某个目录下大小为 0 的文件
    039_显示 CPU 厂商信息
    038_使用脚本自动创建逻辑卷
    037_自动添加防火墙规则,开启某些服务或端口(适用于 RHEL7)
    bzoj1537
    bzoj2466
    bzoj1047
  • 原文地址:https://www.cnblogs.com/kikochz/p/12868814.html
Copyright © 2011-2022 走看看