consul、eureka、nacos 为什么选择?

配置中心

  • eureka 不支持
  • consul 支持 但用起来偏麻烦,不太符合springBoot框架的命名风格,支持动态刷新
  • nacos 支持 用起来简单,符合springBoot的命名风格,支持动态刷新

注册中心

  • eurekaspring

    • 依赖:依赖ZooKeeper
    • 应用内/外:直接集成到应用中,依赖于应用自身完成服务的注册与发现,
    • ACP原则:遵循AP(可用性+分离容忍)原则,有较强的可用性,服务注册快,但牺牲了必定的一致性。
    • 版本迭代:目前已经不进行升级
    • 集成支持:只支持SpringCloud集成
    • 访问协议:HTTP
    • 雪崩保护:支持雪崩保护
    • 界面:英文界面,不符合国人习惯
    • 上手:容易
  • consul框架

    • 依赖:不依赖其余组件文档

    • 应用内/外:属于外部应用,侵入性小社区

    • ACP原则:遵循CP原则(一致性+分离容忍) 服务注册稍慢,因为其一致性致使了在Leader挂掉时从新选举期间真个consul不可用。配置

    • 版本迭代:目前仍然进行版本迭代命名

    • 集成支持:支持SpringCloud K8S集成协议

    • 访问协议:HTTP/DNS英文

    • 雪崩保护:不支持雪崩保护升级

    • 界面:英文界面,不符合国人习惯co

    • 上手:复杂一点

  • nacos (我的优选)

    • 依赖:不依赖其余组件
    • 应用内/外:属于外部应用,侵入性小
    • ACP原则:通知遵循CP原则(一致性+分离容忍) 和AP原则(可用性+分离容忍)
    • 版本迭代:目前仍然进行版本迭代
    • 集成支持:支持Dubbo 、SpringCloud、K8S集成
    • 访问协议:HTTP/动态DNS/UDP
    • 雪崩保护:支持雪崩保护
    • 界面:中文界面,符合国人习惯
    • 上手:极易,中文文档,案例,社区活跃