欢迎光临散文网 会员登陆 & 注册

常用注册中心的比较

2023-07-05 10:47 作者:IT枫斗者-跳蚤网  | 我要投稿

注册中心的组成部分有哪些?

  • 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。

  • 服务消费者(RPC Client):在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。

  • 服务注册中心(Registry):用于保存 RPC Server 的注册信息,当 RPC Server 节点发生变更时,Registry 会同步变更,RPC Client 感知后会刷新本地 内存中缓存的服务节点列表。

最后,RPC Client 从本地缓存的服务节点列表中,基于负载均衡算法选择一台 RPC Sever 发起调用。

常用的注册中心有哪些?这里主要介绍4种常用的注册中心,分别为Zookeeper、Eureka、Nacos、Consul。1、Zookeeper

  • 经典的服务注册中心中间件

  • java体系中,大部分的集群环境都是依赖zookeeper管理服务的各个节点

其组件特点:

  • 数据结构上高度抽象为K-V格式

  • 支持节点短暂存在

2、Eureka

  1. Netflix开发的服务发现框架

  2. 基于REST的服务

  3. 用于服务注册、管理、负载均衡、服务故障转

其组件特点:

  • 包含两个组件:EurekaServer 和 EurekaClient

  • EurekaServer提供注册服务,服务节点的信息可以在界面中直观的看到

  • 允许在注册服务时,自定义实现检查自身状态的是够健康的方法

  • EurekaClient简化与EurekaServer的交互,同时也是一个内置的、使用轮询负载算法的负载均衡器

3、Consule

  1. 用于服务发现和配置的工具

  2. 分布式的,高度可用的,并且具有极高的可伸缩性

  3. 提供了功能齐全的控制面板

  4. 主要特点:服务发现、健康检查、键值存储、安全服务通信、多数据中心、ServiceMesh

其组件特点:

  1. 提供多个数据中心支持,基于Fabio做负载均衡

  2. 八卦池,其中包含给定数据中心的所有节点

4、Nacos

  1. 用于微服务的发现、配置、管理

  2. 更敏捷、容易地构建、交付、管理微服务平台

其组件特点:

  1. 数据模型:服务 - 集群 - 实例

  2. 提供数据逻辑隔离模型,用户账号可以新建多个命名空间,每个命名空间对应一个客户端实例,这个命名空间对应的注册中心物理集群是可以根据规则进行路由的,这样可以让注册中心内部的升级和迁移对用户是无感知的。


总结:Zookeeper基于ZAP协议实现保证每个节点数据同步的问题,中心化思想集群模式,分为领导和跟随者角色。当我们的zk领导因为某种原因宕机的情况下,会自动触发重新选一个新的领导角色,整个选举的过程为了保证数据的一致性问题,在选举的过程中整个zk环境是不可使用的可短暂可能无法使用到zk。意味着微服务采用该模式情况下,可能无法实现通讯(本地有缓存除外)

注意:可运行的节点必须满足过半机制,整个zk采用使用。

Eureka采用ap的设计理念架构注册中心,完全去中心化思想,也就是没有主从之分每个节点都是均等,采用相互注册的原理,你中有我我中有你,只要最后有一个eureka节点存在就可以保证整个微服务可以实现通讯。

Nacos中集群保证一致性算法采ratf协议模式,采用心跳机制实现选举的()。

常用注册中心的比较的评论 (共 条)

分享到微博请遵守国家法律