nacos+springboot+openfeign服务间访问

版本:
nacos:2.2.0
springboot:2.6.13
openfeign:3.1.6

只使用
nacos-config-spring-boot-starter
nacos-discovery-spring-boot-starter
不行,会找不到服务
报错内容如下:
No servers available for service: XXX

还有一个WARN信息:
org.springframework.cloud.loadbalancer.core.RoundRobinLoadBalancer报出如下:
No servers available for service:

查了很久,找一堆资料,
如 : https://blog.csdn.net/FansUnion/article/details/90635479

https://blog.csdn.net/weixin_40837404/article/details/128099383?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-3-128099383-blog-90635479.235%5Ev27%5Epc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-3-128099383-blog-90635479.235%5Ev27%5Epc_relevant_multi_platform_whitelistv3&utm_relevant_index=4

结果都不是我遇到的问题,后来发现,我在系统中只引入了:
nacos-config-spring-boot-starter
nacos-discovery-spring-boot-starter

以上包无法与openfeign及LoadBalancer 一起工作;
换成下如下包就好了:
nacosCloudVersion:'2021.0.5.0'

implementation("com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:$nacosCloudVersion")

implementation("com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:$nacosCloudVersion")

        //nacos starter
//        implementation("com.alibaba.boot:nacos-config-spring-boot-starter:$nacosBootVersion")
//        implementation("com.alibaba.boot:nacos-discovery-spring-boot-starter:$nacosBootVersion")

        implementation("com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:$nacosCloudVersion")
        implementation("com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:$nacosCloudVersion")

引入的spring相关的如下图所示:

springCloudVersion = '3.1.5'

image.png

原配置application.yml要换成bootstrap.yml
nacos的配置在cloud包下与spring-boot不一样,需要调整:

参考内容如下:

spring:
  cloud:
    nacos:
      config:
        server-addr: http://192.168.1.215:8848
        refresh-enabled: false
        encode: utf8
        fileExtension: yml
        namespace: template-java
        extension-configs:
          - data-id: app.yml
            group: dev
          - data-id: redis.yml
            group: dev
      discovery:
        server-addr: http://192.168.1.215:8848
        namespace: template-java
        group: dev

另外,如下图所示,若nacos控制台订阅者中应用名显示unknown,

image.png

需要在程序启动函数里面设置如下的参数即可:

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。