网站信息查询,宁波正规seo推广公司,怎么给新网站做推广,网站怎么做电脑系统下载文件问题 
大家或多或少都接触过【注册中心】#xff0c;对注册中心的基本功能#xff0c;如#xff1a;服务注册、服务发现、健康检查和变更通知 #xff0c;肯定是耳熟能详的#xff1b;那么大家对注册中心的架构设计是否了解呢#xff1f; 
如果让你负责设计一个分布式的注…问题 
大家或多或少都接触过【注册中心】对注册中心的基本功能如服务注册、服务发现、健康检查和变更通知 肯定是耳熟能详的那么大家对注册中心的架构设计是否了解呢 
如果让你负责设计一个分布式的注册中心系统那么你会考虑哪些关键问题呢 解析 
我们先来回顾关于【注册中心】的几个关键点 
1、注册中心的四大基本功能包括服务注册、服务发现、健康检查和变更通知其中 “服务注册” 动作由服务提供方节点发起“服务发现” 动作由服务消费方节点发起“健康检查” 和 “变更通知” 动作由注册中心发起 
2、注册中心这个组件存在的本质意义是什么呢从系统架构分析的角度是为了解耦服务提供方节点对服务消费方节点的依赖。怎么理解呢假设 服务消费方节点A 对 服务提供方节点B 进行 RPC 调用我们说A和B的关系是 单向依赖但是在实际的应用中B节点的访问地址需要提供以及将来的回收给A此时A和B 就形成了双向依赖的循环依赖关系通过引入注册中心则方便的解决了该问题 
3、注册中心从功能的实现角度分析其本质即注册中心  存储系统  订阅系统即在搭建一个注册中心的框架时把握好其【存储实现】和【订阅实现】也就基本实现了一个注册中心系统。 现在回到我们的问题上来设计一个分布式的注册中心系统需要考虑哪些关键问题呢需要考虑三个最关键的点 
1、存储模型实现 
注册中心需要记录和保存服务提供方服务与节点之间的映射关系、服务消费方服务与节点之间的映射关系、服务消费方与服务提供方之间的订阅和被订阅的映射关系存储模型的实现关乎注册中心【服务注册】和【服务发现】两个基本功能的实现。 
2、订阅模型实现 
注册中心需要通过【健康检查】密切关注着服务提供方节点的任何风吹草动一旦有情况需要及时通过【变更通知】主动告之服务消费方节点这就是订阅模型需要做的实现我们曾经提到过订阅模型系统由三种实现模型即信箱模型、电话模型和BP机模型见《架构师面试三订阅模型》大家想一下广为人知的作为注册中心的zookeeper采用了什么样的订阅模型呢  
关于【健康检查】大家需要注意当服务数量非常高的时候注册中心应该通过什么样的算法及时检测到服务提供方的健康状态呢 
3、数据节点同步 
作为分布式的注册中心系统肯定有很多的节点组成而不同客户端连接的往往是不同的节点这些节点之间如何进行数据同步呢这是作为分布式注册中心系统必须要考虑的关键问题。为了让大家有一个更直观的理解我们举一个例子 
假设一个分布式的注册中心系统由三个节点组成分别是X、Y、Z服务提供方A有两个节点分别是PA-1、PA-2服务消费方B有两个节点分别是CA-1、CA-2服务B订阅了服务APA-1连接的是X节点、PA-2和CA-1连接的是Y节点、CA-2连接的是Z节点。下面重点来了当PA-1节点挂掉以后X节点通过【健康检查】及时获取这个事件后必须及时同步到Y节点和Z节点由Y节点把变更通知给CA-1和由Z节点把变更通知给CA-2。 最后我们一句话总结设计一个分布式的注册中心系统需要考虑存储模型实现、订阅模型实现和数据节点同步这样三个最关键的问题。