1.背景:
需要在微服务项目中集成nacos配置中心,然后RPC远程调用使用的是dubbo 3.2.0,所以在集成配置中心的时候也把dubbo的配置参数也放到了配置中心里。
2.版本
jdk 17
spring boot 2.7.9
spring cloud 2021.0.8
spring cloud alibaba 2021.0.5.0
dubbo 3.2.0
3.bootstrap.yaml配置
server:
port: 8080
spring:
application:
name: service
profiles: dev
cloud:
nacos:
discovery:
server-addr: ${nacos.server}
namespace: ${nacos.namespace}
config:
server-addr: ${nacos.server}
namespace: ${nacos.namespace}
file-extension: properties
enabled: true
4.servies-dev.properties
server.port = 807
spring.application.name = ssoc-service
spring.datasource.url = jdbc:mysql://localhost:3306/test?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
dubbo.application.metadata-type = remote
dubbo.application.register-mode = instance
dubbo.application.service-discovery.migration = FORCE_APPLICATION
dubbo.registry.address = nacos://127.0.0.1:8848
dubbo.registry.username = nacos
dubbo.registry.password = nacos
dubbo.registry.parameters.namespace = ffb34a7-59b6-bcaf-4321ac3278af
5.问题:
在nacos新建好了配置后,启动服务的时候就报错
[DUBBO] Config center was specified, but no config item found.,…
Stopping service [Tomcat]
No application config found or it`s not a valid config! Please add <dubbo:application name=“…” /> to your spring config
6.解决:
因为之前在没有集成nacos配置中心时dubbo配置参数也是这样没有变化,结果集成nacos配置中心后一直报这个错误,后面也不是没有各种改配置参数,但还是不奏效,所以导致后面一直以为是dubbo初始化加载不能正确加载nacos上配置参数,所以一直在跟dubbo跟nacos的初始化顺序上较劲老半天,但最后才在网上看了这个这篇文章https://developer.aliyun.com/article/1350605,发现我确实没有配置这个参数,但之前的经验dubbo这个参数没有配置的话默认使用spring.applicatin.name值,然后决定加上dubbo.application.name = service
原神启动,good
后面后知知觉,其实报错已经很明显了,please add <dubbo:application name=“…”>!!! please ! add ! name!!!