背景
一个服务实例需要注册到多个nacos命名空间,利用nacos的命名空间实现服务的逻辑隔离。
在多租户场景下,服务实例需要区分所属租户,且要保证服务间正常调用。
因此需要实现:
- 服务的自定义注册、心跳;
- 服务发现及负载均衡
技术实现
为完成以上的背景要求,使用nacos做注册中心、配置中心,记录各个服务实例信息(实例元数据做区分),动态修改服务的配置项.
在各个服务上自定义:注册、心跳、LB逻辑
服务注册
功能接口
nacos注册相关的接口
实现类
接口只有一个实现类
注册实例
注册的逻辑由NamingProxy对象实现
组装参数
初始化注册需要的参数
nacos集群负载逻辑
nacos集群场景下的负载逻辑处理
nacos api 调用
调用nacos的openAPI
实例心跳
image.png
在注册服务的逻辑出,添加了服务的心跳信息
定时任务
服务的心跳信息由定时任务触发
nacos api 调用
调用nacos的openAPI以实现心跳