如下示例均基于Spring Boot框架环境实现。
启动Nacos
参考Nacos官方文档部署并启动实例。
在使用Nacos作为配置中心时,可以将Dubbo的所有配置信息都保存到Nacos中。
依赖及配置
在服务提供者或服务消费者项目中添加依赖。
1 2 3 4 5 6
| <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.1</version> </dependency>
|
同时,在服务提供者或服务消费者项目配置文件(application.yml)中添加如下配置。
1 2 3 4 5
| nacos: config: server-addr: 192.168.100.232:8848 bootstrap: enable: true
|
在启动类中添加注解@NacosPropertySource
,再使用注解@NacosValue
引用对应的配置项目参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| @SpringBootApplication @EnableDubbo @NacosPropertySource(dataId = "example", autoRefreshed = true) public class DemoServiceConsumerApplication { public static void main(String[] args) { SpringApplication.run(DemoServiceConsumerApplication.class, args); } }
@Component public class Task implements CommandLineRunner { @DubboReference DemoService demoService;
@NacosValue(value = "${dubbo.application.name}", autoRefreshed = true) private String dubboApplicationName;
@NacosValue(value = "${timeout}", autoRefreshed = true) private int timeout; }
|
此时就可以将Dubbo的所有配置信息都保存到Nacos中。
如下示例将Dubbo服务的配置信息保存到Nacos中DataId为example
的配置项中。
1 2 3 4 5 6 7 8
| dubbo.registry.address = nacos://192.168.100.232:8848 dubbo.provider.timeout = 5550 dubbo.registry.simplified = true dubbo.application.name = dubbo-springboot-demo-consumer dubbo.protocol.name = dubbo dubbo.protocol.port = -1 timeout = 300 batch = 1323
|
【参考】
Dubbo 动态配置中心