10 服务注册Eureka高级

Eureka Server 高可用集群

在上一个章节,实现了单节点的Eureka Server的服务注册与服务发现功能。Eureka Client会定时连接 Eureka Server,获取注册表中的信息并缓存到本地。微服务在消费远程API时总是使用本地缓存中的数 据。因此一般来说,即使Eureka Server发生宕机,也不会影响到服务之间的调用。但如果Eureka Server宕机时,某些微服务也出现了不可用的情况,Eureka Server中的缓存若不被刷新,就可能会影 响到微服务的调用,甚至影响到整个应用系统的高可用。因此,在生成环境中,通常会部署一个高可用 的Eureka Server集群。

Eureka Server可以通过运行多个实例并相互注册的方式实现高可用部署,Eureka Server实例会彼此增 量地同步信息,从而确保所有节点数据一致。事实上,节点之间相互注册是Eureka Server的默认行 为。

image-20211224213839974.png

搭建 Eureka Server高可用集群

(1)修改本机host属性

由于是在个人计算机中进行测试很难模拟多主机的情况,Eureka配置server集群时需要执行host地址。 所以需要修改个人电脑中host地址

127.0.0.1 eureka1
127.0.0.1 eureka2

(2)修改 shop_eureka_server 工程中的yml配置文件,添加如下配置属性

#指定应用名称
spring:
 application:
   name: shop-eureka-server
---
#执行peer1的配置信息
spring:
 profiles: eureka1
server:
 port: 8761
eureka:
 instance:
   hostname: eureka1
 client:
   service-url:
     defaultZone: http://eureka2:8762/eureka
---
#执行peer2的配置信息
spring:
 profiles: eureka2
server:
 port: 8762
eureka:
 instance:
   hostname: eureka2
 client:
   service-url:
     defaultZone: http://eureka1:8761/eureka

在配置文件中通过连字符(---)将文件分为三个部分,第一部分为应用名称,第二部分和第三部 分是根据不同的profiles选项动态添加,可以在IDEA启动时进行激活配置

使用IDEA启动历次EurekaServerApplicaion分别激活eureka1和eureka2配置。访问http://eureka1:87 61和http://eureka1:8762/。会发现注册中心 SHOP-EUREKA-SERVER 已经有两个节点,并且 registered-replicas (相邻集群复制节点)中已经包含对方。

image-20211224214114193.png

服务注册到Eureka Server集群

如果需要将微服务注册到Eureka Server集群只需要修改yml配置文件即可

eureka:
 client:
   serviceUrl:
     defaultZone: http://eureka1:8761/eureka/,http://eureka1:8761/eureka/

以商品微服务为例,修改defaultZone配置添加多个Eureka Server的地址

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容