美文网首页
Consul高可用

Consul高可用

作者: 杰森斯坦sen | 来源:发表于2019-06-20 14:06 被阅读0次

    Consul is built to be region and datacenter aware. For example, when doing service discovery it can be instructed to only return services present in the current datacenter to limit latency.

    consul-discovery
    consul-config
    consul-bus

    Consul使用Go语言编写。

    Consul 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接。

    Consul Cluster集群

    Consul Cluster集群架构图

    Consul 强一致性(C)带来的是:
    服务注册相比 Eureka 会稍慢一些。因为 Consul 的 raft 协议要求必须过半数的节点都写入成功才认为注册成功。 Leader 挂掉时,重新选举期间整个 Consul 不可用。保证了强一致性但牺牲了可用性。

    Eureka 保证高可用(A)和最终一致性:
    服务注册相对要快,因为不需要等注册信息 replicate 到其它节点,也不保证注册信息是否 replicate 成功 当数据出现不一致时,虽然 A, B 上的注册信息不完全相同,但每个 Eureka 节点依然能够正常对外提供服务,这会出现查询服务信息时如果请求 A 查不到,但请求 B 就能查到。如此保证了可用性但牺牲了一致性。

    Reference

    Spring Cloud(二)Consul 服务治理实现
    基于nginx和consul构建高可用及自动发现的docker服务架构
    springcloud(十三):注册中心 Consul 使用详解
    现有系统如何集成Consul服务发现
    Consul微服务的配置中心体验篇
    Consul Config 使用Git做版本控制的实现
    Spring Cloud Consul 之Greenwich版本全攻略
    Nacos 注册中心的设计原理详解
    服务发现框架选型,Consul还是Zookeeper还是etcd
    consul 源码解析(一)raft 协议实现

    相关文章

      网友评论

          本文标题:Consul高可用

          本文链接:https://www.haomeiwen.com/subject/megsgqtx.html