前面部分主要是分析了nacos作为配置中心时,客户端的相关逻辑,主要包括:
- configService的初始化,对数据的监听
- 结合spring-cloud实现动态配置更新。
关于nacos服务端的存储结构后面再统一分析。
本篇分析nacos作为注册中心时客户端如何进行服务注册。我们以dubbo+nacos为例。首先添加依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
dubbo的注册中心配置:
dubbo:
registry:
address: nacos://127.0.0.1:8848
定义一个service服务:
@Service
public class HelloServiceImpl implements HelloService {
@Override
public void sayHello() {
System.out.println("hello spring cloud alibaba with dubbo and nacos.");
}
}
注意这里的@Service是dubbo的。同时需要dubbo配置中定义包扫描路径。
服务启动后查看nacos服务端的服务列表:
测试代码搞完了,我们开始分析流程
获取Registry注册中心实例
我们知道dubbo在服务导出时初始化注册中心客户端并发起服务注册请求。我们看一下RegistryProtocol的register方法:
public void register(URL registryUrl, URL registeredProviderUrl) {
Registry registry = registryFactory.