• 【Nacos】spring cloud (feign)+ Nacos 负载均衡实现


    模拟场景:

    • Nacos 服务已安装 ip:8848
    • 通过设置启动端口参数(20011和20010),启动两个生产者
    • 消费者feign调用生产者

         理解:feign集成了Ribbon(Ribbon时客户端负载均衡),客户端使用了@FeignClient注解,通过负载均衡算法已经选择好了生产者地址

         无法理解的客官请移步 【nacos】2.1 Spring Cloud服务协作流程 ,了解服务器端负载均衡客户端负载均衡的介绍

    1.创建父工程

    pom文件,版本对应关系参考官网  https://spring.io/projects/spring-cloud

    1. <dependency>
    2. <groupId>com.alibaba.cloudgroupId>
    3. <artifactId>spring-cloud-alibaba-dependenciesartifactId>
    4. <version>2.2.8.RELEASEversion>
    5. <type>pomtype>
    6. <scope>importscope>
    7. dependency>
    8. <dependency>
    9. <groupId>org.springframework.cloudgroupId>
    10. <artifactId>spring-cloud-dependenciesartifactId>
    11. <version>Hoxton.SR12version>
    12. <type>pomtype>
    13. <scope>importscope>
    14. dependency>

    2. 服务生产者

    • 2.1 application.yml, 其中 47.104.188.88:8848为nacos服务地址
    1. spring:
    2. application:
    3. name: baseserver
    4. cloud:
    5. nacos:
    6. discovery:
    7. server-addr: 47.104.188.88:8848
    8. server:
    9. port: ${prot:20010} # 这里设置启动输入参数,方便启动多次,默认20010
    •  2.2 pom.xml 加入nacos + feign(远程访问)依赖
    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-webartifactId>
    4. dependency>
    5. <dependency>
    6. <groupId>com.alibaba.cloudgroupId>
    7. <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    8. dependency>
    9. <dependency>
    10. <groupId>org.springframework.cloudgroupId>
    11. <artifactId>spring-cloud-starter-openfeignartifactId>
    12. dependency>
    •  2.3 启动类添加注解  @EnableFeignClients

    •   2.4 编写接口

    •  2.5 启动多次,设置端口为20011和20010,并依次启动即可

    3.服务消费者

    •  3.1  application.yml (同上,修改下应用名称即可)
    •  3.2  pom.xml (同上,生产者消费者角色任何时候都可以互换)
    •  3.3 启动类添加注解  @EnableFeignClients  同上)
    •  3.4 编写Feign调用

            1.声明Feign客户端

    1. @FeignClient(value = "baseserver")
    2. public interface BaseserverClient {
    3. *根据用户名查询账号信息
    4. @param username用户名
    5. *@return账号信息
    6. */
    7. @GetMapping(value = "/service")
    8. public String service();
    9. }

            2.业务调用

    1. @Autowired
    2. private BaseserverClient baseserverClient;
    3. public void method(){
    4. baseserverClient.service();//即可调用
    5. }
    •  3.5 启动

  • 相关阅读:
    【wing】一款轻量快捷的团队开发工具
    springboot中动态api如何设置
    分布式.BASE理论
    图片像素缩放,支持个性化自定义与精准比例调整,让图像处理更轻松便捷!
    如何限制一个账号只在一处登陆
    ctrlz删除的文件怎么恢复?
    【操作系统】7/35进程原语2
    免费研讨会 | 邀您体验 Ansys Zemax Enterprise 的 STAR 模块
    Mathorcup数学建模竞赛第二届-【妈妈杯】A题:最佳飞行队列
    轻松掌握组件启动之Redis单机、主从、哨兵、集群配置
  • 原文地址:https://blog.csdn.net/ladymorgana/article/details/126290244