微服务:服务发现

1. 服务发现

eureka、nacos、Consul、etcd 和 zk 都是主流的服务发现工具,而 Dubbo 和 Polaris Mesh 则是基于服务发现的 RPC 框架。

它们的主要区别在于:

eureka 是 Netflix 开源的一个服务发现组件,支持高可用和数据同步,具有简单、轻量、易上手等优点;
nacos 是阿里巴巴开源的一个服务发现和配置中心,功能强大、易于部署和集成,可以管理动态服务、配置和元数据信息;
Consul 是 HashiCorp 公司开发的服务发现和配置工具,支持多数据中心,提供强大的健康检查和 KV 存储功能;
etcd 是 CoreOS 公司开源的高可用的分布式键值存储系统,提供了一种可靠的方式用于存储和共享分布式系统的关键数据;
zk (ZooKeeper) 是 Apache 基金会的项目,是一个同时提供命名服务、配置管理、同步和分组服务等的分布式协调工具;
Dubbo 是阿里巴巴开源的高性能 RPC 框架,支持负载均衡、服务治理等功能;
Polaris Mesh 是腾讯开源的微服务平台,平台内部使用了 nacos 进行服务发现和服务注册,并提供了基于 istio 的 Service Mesh 功能。

它们都能满足 CAP 原理,但实现方式可能不一样:

eureka 使用的是 AP(可用性&分区容错性);
nacos 采用的是 AP+CP;
Consul 采用的是 CP(一致性&分区容错性);
etcd 采用的是 CP(一致性&分区容错性);
zk 采用的是 CP(一致性&分区容错性);
Dubbo 可以根据业务需求进行配置,支持 AP 和 CP;
Polaris Mesh 也可以根据应用场景进行调整,支持 AP 和 CP。
在这里插入图片描述

2.

Eureka、Nacos、Consul和etcd都是常见的分布式服务发现和注册组件,它们之间的主要区别在于以下几个方面:

  1. 数据一致性:Eureka采用的是弱一致性模型,即服务注册的信息会被延迟一段时间才会在整个集群中得到同步,因此可能会出现服务信息不同步的情况。而etcd、Consul采用的是强一致性模型,确保了集群中的所有节点都能够实时访问到最新的数据。

  2. 功能和扩展性:Nacos和etcd提供了更为丰富的服务治理功能,如流量管理、配置管理和动态DNS等,具有更好的扩展性和灵活性。而Eureka和Consul则比较轻量级,主要用来实现最基本的服务发现和注册功能。

  3. 服务发现方式:Eureka和Consul都采用了传统的客户端-服务端模式,即服务消费者会向服务注册中心查询可用服务地址列表,然后自己根据这些地址来决定调用哪些服务提供者。而Nacos除了支持客户端-服务端模式外,还支持服务端-服务端模式,即服务提供者也可以注册到Nacos集群中,并直接从Nacos中获取服务信息。etcd则提供了统一的Key-Value存储机制,可以用来实现服务注册和配置管理等功能。

服务发现默认时间根据不同的实现而有所不同。一般来说,Eureka和Consul的默认心跳时间都是30秒左右,即每30秒向注册中心发送一次心跳,如果超时则认为服务实例已经下线。Nacos的默认健康检测时间是5秒,并且可以通过参数进行配置。etcd的心跳时间默认为5秒,也可以通过参数进行配置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值