数媒在线课堂 Nacos 的实现
发布日期:2025-04-13 11:05    点击次数:98

2.2.1 register 接口:

step1: 校验地址是否合法

step2: 获取 Nacos 的 Name 实例,然后将地址注册到当前 Cluster 名称上面。

unregister 接口类似,这里不做详解。

2.2.2 lookup 接口:

step1:获取当前 clusterName 名字

step2:判断当前 cluster 是否已经获取过了,如果获取过就从 map 中取。

step3:从 Nacos 拿到地址数据,将其转换成我们所需要的。

step4:将我们事件变动的 Listener 注册到 Nacos

2.2.3 subscribe 接口

这个接口比较简单,具体分两步:

step1:将 clstuer 和 listener 添加进 map 中。

step2:向 Nacos 注册。

2.3 Config

配置模块也是一个比较基础,比较简单的模块。我们需要配置一些常用的参数比如:Netty 的 select 线程数量,work 线程数量,session 允许最大为多少等等,当然这些参数再 Seata 中都有自己的默认设置。

同样的在 Seata 中也提供了一个接口 Configuration,用来自定义我们需要的获取配置的地方:

getInt/Long/Boolean/Config ():通过 dataId 来获取对应的值。

putConfig:用于添加配置。

removeConfig:删除一个配置。

add/remove/get ConfigListener:添加 / 删除 / 获取 配置监听器,一般用来监听配置的变更。

目前为止有四种方式获取 Config:File (文件获取),Nacos,Apollo,ZK。再 Seata 中首先需要配置 registry.conf,来配置 conf 的类型。实现 conf 比较简单这里就不深入分析。