Spring cloud loadbalancer跟Nacos进行整合

Spring cloud loadbalancer是spring官方发布的客户端负载均衡组件,而Netflix的 Ribbon已进入维护阶段,从最新的spring cloud2020版本中移除掉了,最近升级之后Nacos注册中心无法正常运行了,提醒我是不是忘了引入Spring cloud loadbalancer,~^_^~!索性就升级了吧!

1. 引入Spring cloud loadbalancer,配置禁用ribbon,启动正常,功能正不正常呢?往下看

<!-- 升级spring cloud之后,Nacos消费者服务依赖该组件 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
spring:
  cloud:
    # 使用spring loadbalancer,弃用ribbon
    loadbalancer:
      ribbon:
        enabled: false

2. 正常的业务逻辑是访问gateway网关,转发到delivery服务,delivery服务完成业务逻辑需要调用order服务,跑一下试试!!

异常了,看日志提示RibbonLoadBalancerClient未定义??明明已经禁用了为啥还是会去找它来卖命?打断点各种调试,feign没问题、loadbalancer也引入了,但每次都要去找ribbon,那估计是nacos的问题咯!

3. 去Nacos官方一看果然,有解决方案,nacos也要禁用ribbon:

https://github.com/alibaba/spring-cloud-alibaba/issues/1620

好吧,试试:

# 使用spring loadbalancer,弃用ribbon
ribbon:
  nacos:
    enabled: false

还是不生效,最后一扣脑壳,可能nacos自动配置哪里出了问题,老是要去找ribbon,干脆把ribbon给exclude了。

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <!-- 使用spring loadbalancer,弃用ribbon -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

哈哈!欧了!!再回头仔细一看nacos官方方案,有讲一句排除依赖,这也太不起眼太笼统了嘛!

  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值