zoukankan      html  css  js  c++  java
  • SpringCloud服务注册与发现-Eureka、Nacos和Consul

    参考博客:https://blog.csdn.net/z694644032/article/details/96485619https://www.cnblogs.com/zhucww/p/11532770.html

    当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息。 如果心跳超时,则通常将该实例从注册server中删除

    服务注册与发现的组件在市面上有非常多的选择,常用的有Eureka、Nacos、Consul 

    1.Eureka 是 Netflix 开源的一款提供服务注册和发现的产品,已闭源,提供了完整的服务注册和发现,springcloud中最核心的组件之一,需要手动配置 Eureka Server 服务器。

      服务器端:pom.xml 中引入spring-cloud-starter-netflix-eureka-server,启动类添加@EnableDiscoveryClient 或@EnableEurekaServer注解,配置文件添加相关配置;

      客户端:pom.xml 中引入spring-cloud-starter-netflix-eureka-client,启动类添加@EnableEurekaClient注解,配置文件添加相关配置;

    2.Nacos 是 Alibaba 开源的一款专注于动态服务发现,配置和服务管理的组件

      服务器端:使用 Nacos 作为服务注册中心;

      客户端:pom.xml 中引入spring-cloud-starter-alibaba-nacos-discovery,启动类添加 @EnableDiscoveryClient注解,配置文件添加相关配置;

    3.Consul是一个分布式高可用的系统,是为基础设施提供服务发现和服务配置的工具

      服务器端:使用 consul 服务器;

      客户端:pom.xml 中引入spring-cloud-starter-consul-discovery,启动类添加 @EnableDiscoveryClient注解,配置文件添加相关配置;

    注意点:

      1.@EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心;

      2.从Spring Cloud Edgware开始,@EnableDiscoveryClient 或@EnableEurekaClient 可省略。只需加上相关依赖,并进行相应配置,即可将微服务注册到服务发现组件上;

    Eureka、Nacos、Consul 技术选型对比:

      配置中心:

        1.eureka 不支持

        2.consul 支持 但用起来偏麻烦,不太符合springBoot框架的命名风格,支持动态刷新

        3.nacos 支持 用起来简单,符合springBoot的命名风格,支持动态刷新

      注册中心:

    • eureka

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

      • 依赖:不依赖其他组件

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

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

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

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

      • 访问协议:HTTP/DNS

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

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

      • 上手:复杂一点

    • nacos

      • 依赖:不依赖其他组件
      • 应用内/外:属于外部应用,侵入性小
      • ACP原则:通知遵循CP原则(一致性+分离容忍) 和AP原则(可用性+分离容忍)
      • 版本迭代:目前仍然进行版本迭代
      • 集成支持:支持Dubbo 、SpringCloud、K8S集成
      • 访问协议:HTTP/动态DNS/UDP
      • 雪崩保护:支持雪崩保护
      • 界面:中文界面,符合国人习惯
      • 上手:极易,中文文档,案例,社区活跃
  • 相关阅读:
    oracle 认证方式
    Oracle
    深入理解Java的接口和抽象类
    mongoDB的学习【小白的福音】
    对于vertical-align的学习
    flex的学习 flexBox的学习
    用伪类添加翘边阴影::before和::after
    icon小图标
    url 中的 ? 和 & 还有 # 的作用
    解决img的1px空白问题
  • 原文地址:https://www.cnblogs.com/skj0330insn/p/12057416.html
Copyright © 2011-2022 走看看