注册中心是如何工作的

简介: 【2月更文挑战第8天】

注册中心存储的服务信息一般包含三部分内容:分组、服务名以及节点信息,节点信息又包括节点地址和节点其他信息。那么注册中心是如何工作的呢?

1. 如何注册节点


知道了服务的节点信息如何存储之后,服务注册流程是怎么样的呢?可以用下面这张流程图来描述。

服务注册流程主要有下面几个步骤:

  • 首先查看要注册的节点是否在白名单内?如果不在就抛出异常,在的话继续下一步。
  • 其次要查看注册的 Cluster(服务的接口名)是否存在?如果不存在就抛出异常,存在的话继续下一步。
  • 然后要检查 Service(服务的分组)是否存在?如果不存在则抛出异常,存在的话继续下一步。
  • 最后将节点信息添加到对应的 Service 和 Cluster 下面的存储中。


2. 如何反注册


来看下服务提供者节点反注册的流程,可以用下面这张流程图来描述。

节点反注册流程主要包含下面几个步骤:

  • 查看 Service(服务的分组)是否存在,不存在就抛出异常,存在就继续下一步。
  • 查看 Cluster(服务的接口名)是否存在,不存在就抛出异常,存在就继续下一步。
  • 删除存储中 Service 和 Cluster 下对应的节点信息。
  • 更新 Cluster 的 sign 值。


3. 如何查询节点信息


关于服务消费者是如何从注册中心查询服务提供者的节点信息,可以用下面这张流程图来描述。

服务消费者查询节点信息主要分为下面几个步骤:

  • 首先从 localcache(本机内存)中查找,如果没有就继续下一步。这里为什么服务消费者要把服务信息存在本机内存呢?主要是因为服务节点信息并不总是时刻变化的,并不需要每一次服务调用都要调用注册中心获取最新的节点信息,只需要在本机内存中保留最新的服务提供者的节点列表就可以。
  • 接着从 snapshot(本地快照)中查找,如果没有就继续下一步。这里为什么服务消费者要在本地磁盘存储一份服务提供者的节点信息的快照呢?这是因为服务消费者同注册中心之间的网络不一定总是可靠的,服务消费者重启时,本机内存中还不存在服务提供者的节点信息,如果此时调用注册中心失败,那么服务消费者就拿不到服务节点信息了,也就没法调用了。本地快照就是为了防止这种情况的发生,即使服务消费者重启后请求注册中心失败,依然可以读取本地快照,获取到服务节点信息。


4. 如何订阅服务变更


服务消费者如何订阅服务提供者的变更信息呢?可以用下面这张流程图来描述。

主要分为下面几个步骤:

  • 服务消费者从注册中心获取了服务的信息后,就订阅了服务的变化,会在本地保留 Cluster 的 sign 值。
  • 服务消费者每隔一段时间,调用 getSign() 函数,从注册中心获取服务端该 Cluster 的 sign 值,并与本地保留的 sign 值做对比,如果不一致,就从服务端拉取新的节点信息,并更新 localcache 和 snapshot。


以上就是服务注册和反注册、服务查询和服务订阅变更的基本流程。

相关文章
|
5天前
|
微服务
注册中心机制
【2月更文挑战第16天】注册中心机制
32 5
|
测试技术
400电话客服呼叫中心搭建流程及注意事项
400电话客服呼叫中心搭建流程及注意事项
297 0
400电话客服呼叫中心搭建流程及注意事项
应用中心——应用中心如何使用
应用中心——应用中心如何使用自制脑图
58 0
应用中心——应用中心如何使用
|
存储 数据可视化 Java
服务配置中心介绍|学习笔记
快速学习服务配置中心介绍
105 0
服务配置中心介绍|学习笔记
|
Java 开发者 微服务
EurekaServer 服务注册中心建立|学习笔记
快速学习 EurekaServer 服务注册中心建立
98 0
EurekaServer 服务注册中心建立|学习笔记
|
缓存 算法 Java
传统服务注册中心 | 学习笔记
快速学习 传统服务注册中心
59 0
传统服务注册中心 | 学习笔记
|
缓存 NoSQL Cloud Native
第01篇:分布式注册中心
什么是`注册中心`,`注册中心` 往往是在分布式的应用体系下才会遇到的。对于分布式体系应用都是横向进行扩展。如下图`User App`这个服务,具有2台服务器 但是当用户从网关进来访问, 网关是如何知道这个 `User App`有几台服务及每台服务的网络地址是什么呢? 所以就需要有一个地方能收集到每台应用的地址及命名。 往往这个地方就被叫做 `注册中心`。分布式环境下的应用在启动时候都会向这个地方来注册自己的网络地址,及命名。
363 0
|
存储
核心服务-注册中心(中)
核心服务-注册中心(中)
158 0
核心服务-注册中心(中)
|
容灾 数据中心
核心服务-注册中心(下)
核心服务-注册中心(下)
224 0
核心服务-注册中心(下)