前言简介对于gRPC、Thrift、Dubbo等能够提供完整领域服务接口功能的RPC,服务注册与发现是核心功能流程中非常重要的一环,从而实现微服务的统一管理。分布式领域有一个著名的CAP理论:Consistency,Availability,andPartitiontolerance。这三个要素在一个分布式系统中最多只能满足两个,不可能三个都兼顾。通常我们在使用dubbo时,都是以zookeeper为注册中心,选择master配置为核心,保证CP特性,即任何时候对Zookeeper的访问请求,都能得到一致的数据结果。同时,系统对网络分段具有容错性,但不能保证每一个服务请求的可用性。而SpringCloudNetflix在设计Eureka时遵循了AP原则,因为对于服务发现来说,可用性比数据一致性更重要。SpringCloudEureka是SpringCloudNetflix微服务套件的一部分。主要负责完成微服务架构中的服务治理功能。服务治理可以说是微服务架构中最核心、最基础的模块。主要用于实现各个微服务实例的自动化注册和发现。另外Eureka服务集群有自我保护模式。当每分钟收到的心跳低于阈值时,会触发自我保护;阈值=实例数×(60/实例心跳间隔秒)×自我保护系数{实际计算为;this.expectedNumberOfRenewsPerMin+2}案例描述使用EurekaServer运行3个实例{node01,node02,node03}搭建服务发现集群,解决单点问题(zookeeper也至少部署三组搭建集群)。但是,EurekaServer采用去中心化架构的点对点点对点通信。没有主从之分,每个Peer都是点对点的。在这种架构中,节点相互注册以提高可用性,每个节点都需要添加一个或多个指向其他节点的有效serviceUrls。每个节点都可以被认为是其他节点的副本。环境准备jdk1.8SpringBoot2.0.6.RELEASSpringCloudFinchley.SR2代码示例itstack-demo-springcloud-01├──itstack-demo-node01│└──src│└──main│├──java││└──org.itstack.demo││└──EurekaServerApplication.java│└──资源│└──application.yml├──itstack-demo-node02│└──src│└──main│├──java││└──org.itstack.demo││└──EurekaServerApplication.java│└──资源│└──application.yml└──itstack-demo-node03└──src└──main├──java│└──org.itstack.demo│└──EurekaServerApplication.java└──资源└──application.ymlEurekaServerApplication.java|三套节点代码一致,只需要一个普通的springboot添加@EnableEurekaServer即可启动/***微信公众号:bugstack虫洞栈|沉淀、分享、成长,专注原创专题案例*论坛:http://bugstack.cn*付正伟于@2019创建*/@SpringBootApplication@EnableEurekaServerpublicclassEurekaServerApplication{publicstaticvoidmain(String[]args){SpringApplication.run(EurekaServerApplication.class,args);}}itstack-demo-node01/application.yml|node1指向另外两个服务,registerWithEureka,fetchRegistry与单实例不同,需要配置为truespring:application:name:itstack-demo-eureka-serverserver:port:8081eureka:instance:hostname:node01client:registerWithEureka:truefetchRegistry:真serviceUrl:defaultZone:http://node02:8082/eureka/,http://node03:8083/eureka/itstack-demo-node02/application.yml|node2指向另外两个服务spring:application:name:itstack-demo-eureka-serverserver:port:8082eureka:instance:hostname:node02client:registerWithEureka:truefetchRegistry:trueserviceUrl:defaultZone:http://node03:8083/eureka/,http://node01:8081/eureka/itstack-demo-node03/application.yml|node3指向另外两个Servicespring:application:name:itstack-demo-eureka-server服务器:端口:8083eureka:实例:主机名:node03客户端:registerWithEureka:truefetchRegistry:trueserviceUrl:defaultZone:http://node01:8081/eureka/,http://node02:8082/eureka/test验证配置主机;127.0.0.1node1node2node3分别启动node1、node2、node3访问;http://localhost:8081/授权转载作者:小付哥作者博客:https://bugstack.cn/→进群一起学习交流→一起拓展行业人脉资源→获取学习资料(不卖课程,不关注,纯分享,自己收藏在群公告里)→学习资料标蓝色:https://shimo.im/sheets/CtcH8...