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 比较简单这里就不深入分析。