常见注册中心及其之间的对比

注册中心

1.概述

  1. 注册中心是微服务架构中最核心的基础服务之一

  2. 注册中心可以看做是微服务架构中的通信中心,当一个服务去请求另一个服务时,通过注册中心可以获取该服务的状态,地址等核心信息

  3. 服务注册的三大角色:服务提供者、服务消费者、注册中心

2.基础流程

  1. 服务启动时,将自身的网络地址等信息注册到注册中心,注册中心记录服务注册数据

  2. 服务消费者从注册中心获取服务提供者的地址,并通过地址和基于特定的方式调用服务提供者的接口

3.核心功能

  1. 服务发现

    1. 服务启动后,自动注册到注册中心,提供自身的ip地址、端口、运行状况指标的uri、主页地址等信息

  2. 服务记录

    1. 记录注册中心的服务的信息,例如服务名称、IP地址、端口等

  3. 动态管理服务

    1. 注册中心基于特定的机制时测试已注册的服务

    2. 心跳机制

      1. 默认每30秒发送一次心跳来进行服务续约

      2. 90秒内没有收到心跳,service会将client实例从注册列表中删除

4.基础组件对比

  1. Zookeeper

    1. 概述

      1. 经典的服务注册中心中间件

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

    2. 组件特点

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

      2. 支持节点短暂存在

  2. Eureka

    1. 概述

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

      2. 基于REST的服务

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

    2. 组件特点

      1. 包含两个组件:EurekaServer 和 EurekaClient

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

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

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

  3. Consule

    1. 概述

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

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

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

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

    2. 组件特点

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

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

        1. 不需要为客户端配置服务器的地址

        2. 检测节点故障的工作不是放在服务器上,而是分布式的,比心跳方案更有扩展性

        3. 被用作消息传递层,用于在诸如领导选举等重要时间发生时进行通知

  4. Nacos

    1. 概述

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

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

    2. 组件特点

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

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

5.组件选择

  1. 推荐nacos

    1. 社区活跃

    2. 大规模业务验证

    3. 不但可以作为微服务注册中心,也支持RPC框架Dubbo的注册中心

    4. 有完善的中文文档

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值