背景
一个服务实例需要注册到多个nacos命名空间,利用nacos的命名空间实现服务的逻辑隔离。
在多租户场景下,服务实例需要区分所属租户,且要保证服务间正常调用。
因此需要实现:
- 服务的自定义注册、心跳;
- 服务发现及负载均衡
技术实现
为完成以上的背景要求,使用nacos做注册中心、配置中心,记录各个服务实例信息(实例元数据做区分),动态修改服务的配置项.
在各个服务上自定义:注册、心跳、LB逻辑
服务注册

功能接口
nacos注册相关的接口

实现类
接口只有一个实现类

注册实例
注册的逻辑由NamingProxy对象实现

组装参数
初始化注册需要的参数

nacos集群负载逻辑
nacos集群场景下的负载逻辑处理

nacos api 调用
调用nacos的openAPI
实例心跳

image.png
在注册服务的逻辑出,添加了服务的心跳信息

定时任务
服务的心跳信息由定时任务触发

nacos api 调用
调用nacos的openAPI以实现心跳