问题
提到【注册中心】,我们对它的基本功能,肯定可以顺手拈来,比如:【服务注册】【服务发现】【健康检查】【变更通知】等。
透过这些基本功能,一个普适的注册中心的数据结构应该如何设计呢?
可以结合着具体的业务场景来进行描述。
解析
【注册中心】除了【服务注册】、【服务发现】、【健康检查】和【变更通知】基本功能之外,还有一个很关键的功能,即:【服务订阅】。我们围绕着这些基本功能来设计一个普适的注册中心的数据结构,如下图:

【注册中心】一种非常普适的数据结构是 【KList】,即 一个键值 Key 与一个列表 List 进行映射。
按图中举例:PA 和 PB 是服务提供方的服务名称,CA 是服务消费方的服务名称;PA 有两个服务节点,即 PA-1 和 PA-2, CA 有两个服务节点,即 CA-1 和 CA-2。
在【注册中心】的数据结构中,共包括四类【KList】结构:
-
服务与节点的映射关系,如:PA—>[PA-1, PA-2],CA—>[CA-1, CA-2];
-
节点与服务的映射关系,如:PA-1—>[PA],PA-2—>[PA],CA-1—>[CA],CA-2—>[CA];(此类数据的List的长度是1)
-
订阅关系映射,如:服务CA订阅了服务PA和PB, CA—>[PA, PB];
-
被订阅关系映射,如:PA—>[CA], PB—>[CA]。
此四类【KList】数据可以完成【注册中心】所有功能:

最低0.47元/天 解锁文章
2420

被折叠的 条评论
为什么被折叠?



