版本:
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
結果都不是我遇到的問題够掠,后來發(fā)現洗显,我在系統(tǒng)中只引入了:
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'
原配置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状原,
需要在程序啟動函數里面設置如下的參數即可: