写点什么

「微服务的细节」—— 周期性注册 or 一次性注册

作者:袁世超
  • 2022 年 6 月 20 日
  • 本文字数:538 字

    阅读完需:约 2 分钟

1、Eureka

Eureka 集群采用是 Peer-to-Peer 数据同步模式,保证 AP 数据一致性。

Eureka-Client 的注册请求过来,Eureka-Server 在本地保存后添加到同步队列,然后就返回注册成功,异步持久化注册信息。

这种模式有个问题,就是在 Eureka-Server 宕机时有可能丢失注册信息,为了适用这个模式,客户端对应的注册流程是放在周期性心跳流程中的,如果心跳请求返回 404 那么发起一次注册请求。

2、Nacos

Nacos 集群支持的场景比较丰富,从客户端的注册逻辑来看可以分为两种:

ephemeral 实例注册

对于 ephemeral 实例, Nacose-Client 的流程与 Eureka-Client 一样,Nacos-Server 在将注册信息保存到本地缓存后就返回注册成功,然后 Nacos-Server 异步通过自研的 Distro 协议实现了 AP 的数据一致性。

persistent 实例注册

persistent 实例注册是一次性的,也就是说 Nacos-Server 返回注册成功,那么就代表注册信息在集群中持久化了,不需要客户端再进行重注册了。对于该场景 Nacos-Server 基于 raft 协议实现了 CP 的数据一致性。

3、SOFARegistry

与 Eureka 一样 SOFARegistry 提供的也是 AP 数据一致性,SOFARegistry-Server 收到请求后异步调 Data Cluster 持久化数据。

但是 Client 的逻辑不太一样,SOFARegistry-Client 没有心跳请求,取而代之的是一个检测重试任务。

发布于: 刚刚阅读数: 4
用户头像

袁世超

关注

还未添加个人签名 2017.11.30 加入

还未添加个人简介

评论

发布
暂无评论
「微服务的细节」—— 周期性注册 or 一次性注册_微服务_袁世超_InfoQ写作社区