Spring cloud loadbalancer跟Nacos进行整合

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

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


        
            org.springframework.cloud
            spring-cloud-starter-loadbalancer
        
spring:
  cloud:
    # 使用spring loadbalancer,弃用ribbon
    loadbalancer:
      ribbon:
        enabled: false

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

Spring cloud loadbalancer跟Nacos进行整合_第1张图片

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

Spring cloud loadbalancer跟Nacos进行整合_第2张图片

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

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

Spring cloud loadbalancer跟Nacos进行整合_第3张图片

好吧,试试:

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

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

        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            
            
                
                    org.springframework.cloud
                    spring-cloud-starter-netflix-ribbon
                
            
        

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

Spring cloud loadbalancer跟Nacos进行整合_第4张图片

你可能感兴趣的:(互联网)