深入浅出RPC---4、服务注册发现和健康监测
服务注册发现服务注册发现的作用感知服务端的变化,获取最新服务节点的连接信息。服务注册发现的处理流程**服务注册:**服务提供方将对外暴露的接口发布到注册中心内,注册中心为了检测服务的有效状态,一般会建 立双向心跳机制。**服务订阅:**服务调用方去注册中心查找并订阅服务提供方的 IP,并缓存到本地用于后续调用。如何实现服务的注册发现基于 ZooKeeper 的服务发现方式:在 ZooKeeper
·
服务注册发现
服务注册发现的作用
感知服务端的变化,获取最新服务节点的连接信息。
服务注册发现的处理流程
**服务注册:**服务提供方将对外暴露的接口发布到注册中心内,注册中心为了检测服务的有效状态,一般会建 立双向心跳机制。
**服务订阅:**服务调用方去注册中心查找并订阅服务提供方的 IP,并缓存到本地用于后续调用。
如何实现服务的注册发现
基于 ZooKeeper 的服务发现方式:
- 在 ZooKeeper 中创建一个服务根路径,可以根据接口名命名(例
如:/micro/service/com.test.orderService),在这个路径再创建服务提供方与调用方目录(server、client),分别用来存储服务提供方和调用方的节点信息。 - 服务端发起注册时,会在服务提供方目录中创建一个临时节点,节点中存储注册信息。
- 客户端发起订阅时,会在服务调用方目录中创建一个临时节点,节点中存储调用方的信息,同时watch 服务提供方的目录(/micro/service/com.test.orderService/server)中所有的服务节点数据。当服务端产生变化时ZK就会通知给订阅的客户端。
ZooKeeper方案的特点:
强一致性,ZooKeeper 集群的每个节点的数据每次发生更新操作,都会通知其它 ZooKeeper 节点同时执行更新。
健康监测
为什么需要健康监测
比如网络中的波动,硬件设施的老化等等。可能造成集群当中的某个节点存在问题,无法正常调用。
健康监测实现分析
心跳检测的过程总共包含以下状态:
- 健康状态
- 波动状态
- 失败状态
完善的解决方案
- 阈值: 健康监测增加失败阈值记录。
- 成功率: 可以再追加调用成功率的记录(成功次数/总次数)。
- 探针:对服务节点有一个主动的存活检测机制。
更多推荐
已为社区贡献15条内容
所有评论(0)