• OpenFeign使用步骤


     接口+注解

    微服务调用接口+@FeignClient 

    Feign自带负载均衡配置项 

     新建cloud-consumer-feign-order80

     假设现在有8001 8002 俩个端口有业务如下:

     即查询数据库 的业务处理部分

     

     pom文件

      version已经交给父工程管理 

    1. <properties>
    2. <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    3. <maven.compiler.source>1.8maven.compiler.source>
    4. <maven.compiler.target>1.8maven.compiler.target>
    5. <junit.version>4.12junit.version>
    6. <log4j.version>1.2.17log4j.version>
    7. <lombok.version>1.16.18lombok.version>
    8. <mysql.version>8.0.16mysql.version>
    9. <druid.version>1.1.16druid.version>
    10. <mybatis.spring.boot.version>1.3.0mybatis.spring.boot.version>
    11. properties>
    1. <project xmlns="http://maven.apache.org/POM/4.0.0"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <parent>
    5. <artifactId>mscloud03artifactId>
    6. <groupId>com.atguigu.springcloudgroupId>
    7. <version>1.0-SNAPSHOTversion>
    8. parent>
    9. <modelVersion>4.0.0modelVersion>
    10. <artifactId>cloud-consumer-feign-order80artifactId>
    11. <dependencies>
    12. <dependency>
    13. <groupId>org.springframework.cloudgroupId>
    14. <artifactId>spring-cloud-starter-openfeignartifactId>
    15. dependency>
    16. <dependency>
    17. <groupId>org.springframework.cloudgroupId>
    18. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    19. dependency>
    20. <dependency>
    21. <groupId>com.atguigu.springcloudgroupId>
    22. <artifactId>cloud-api-commonsartifactId>
    23. <version>${project.version}version>
    24. dependency>
    25. <dependency>
    26. <groupId>org.springframework.bootgroupId>
    27. <artifactId>spring-boot-starter-webartifactId>
    28. dependency>
    29. <dependency>
    30. <groupId>org.springframework.bootgroupId>
    31. <artifactId>spring-boot-starter-actuatorartifactId>
    32. dependency>
    33. <dependency>
    34. <groupId>org.springframework.bootgroupId>
    35. <artifactId>spring-boot-devtoolsartifactId>
    36. <scope>runtimescope>
    37. <optional>trueoptional>
    38. dependency>
    39. <dependency>
    40. <groupId>org.projectlombokgroupId>
    41. <artifactId>lombokartifactId>
    42. <optional>trueoptional>
    43. dependency>
    44. <dependency>
    45. <groupId>org.springframework.bootgroupId>
    46. <artifactId>spring-boot-starter-testartifactId>
    47. <scope>testscope>
    48. dependency>
    49. dependencies>
    50. project>

     yml文件

    注册中心由 eureka提供在7001 7002端口

    1. server:
    2. port: 80
    3. eureka:
    4. client:
    5. register-with-eureka: false
    6. service-url:
    7. defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

     主启动类(@EnableFeignClients)

    1. @SpringBootApplication
    2. @EnableFeignClients
    3. public class OrderFeignMain80 {
    4. public static void main(String[] args)
    5. {
    6. SpringApplication.run(OrderFeignMain80.class,args);
    7. }
    8. }

     新建PaymentFeignService接口并新增注解@FeignClient

    1. @Component
    2. @FeignClient(value = "CLOUD-PAYMENT-SERVICE")
    3. public interface PaymentFeignService
    4. {
    5. @GetMapping(value = "/payment/get/{id}")
    6. CommonResult getPaymentById(@PathVariable("id") Long id);
    7. }

     @FeignClient(value = "CLOUD-PAYMENT-SERVICE") 括号里面的值就是8001 8002 的服务程序名称

     

     控制层

    1. @RestController
    2. public class OrderFeignController
    3. {
    4. @Resource
    5. private PaymentFeignService paymentFeignService;
    6. @GetMapping(value = "/consumer/payment/get/{id}")
    7. public CommonResult getPaymentById(@PathVariable("id") Long id)
    8. {
    9. return paymentFeignService.getPaymentById(id);
    10. }
    11. }

    测试结果 

     http://localhost/consumer/payment/get/31

    第一次 

     

     第二次:

     

     可以发现已经实现轮询 

  • 相关阅读:
    【LeetCode】7. 整数反转
    深度学习学习笔记-论文研读4-基于深度强化学习的多用户边缘计算任务卸载调度与资源分配算法
    华为云Astro的前世今生:用7年时间革新低代码开发观念
    【数字图像处理】Gamma 变换
    推荐!32个好用的百度网盘搜索引擎
    使用rem + sass + 媒体查询 进行横竖屏适配移动端项目
    Python-入门-推导式
    基于SourceForge.net+Java+JMS技术实现的分布式爬虫系统
    新建flutter的module无法选择平台
    shell脚本读取csv数据迁移文件
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/126292714