(三)Eureka Server双节点注册中心集群配置

1.Eureka Server高可用集群

在生产环境中,通常会部署一个Eureka Server集群,提升整个系统的高可用性
1. Eureka Server可以通过 运行多个实例 并相互注册的方式实现高可用部署
2. Eureka Server实例会彼此增量同步信息,确保所有节点数据的一致性
3.节点之间相互注册时Eureka Server的默认行为

2.编写高可用Eureka Server(双节点)

2.1 配置操作系统的hosts

Linux、Mac OS系统的文件路径为 /etc/hosts
Windows系统的文件路径为 C:\Windows\System32\drivers\etc\hosts
以Windows为例 直接在hosts文件中添加以下内容即可
 

2.2 创建/修改项目

创建项目microservice-discovery-eureka-ha(从之前microservice-discovery-eureka项目复制并修改其pom.xml中的ArtifactId为microservice-discovery-eureka-ha)

我是直接修改了之前单节点的Eureka Server,将其配置文件application.xml修改如下:

spring:
application:
name: microservice-discovery-eureka 
---
spring:
profiles: peer1 # 指定profile=peer1
server:
port: 8761
eureka:
instance:
hostname: peer1 # 指定当profile=peer1时,主机名是peer1
client:
serviceUrl:
defaultZone: http://peer2:8762/eureka/ # 将自己注册到peer2这个Eureka上面去
---
spring:
profiles: peer2
server:
port: 8762
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka/
  配置文件定义了 2 个Profile
  --- 将文件分为三段
  第2、3段分别为profiles指定了一个值,该值表示它所在段的内容应用在哪个Profile里;
第1段没有profiles值,表示该段内容对所有Profile生效
当以 peer1 这个Profile启动应用时,配置该Eureka Server的主机名为peer1,并将其注册到http://peer2:8762/eureka/
当以 peer2 这个Profile启动应用时,配置该Eureka Server的主机名为peer2,并将其注册到http://peer1:8761/eureka/

2.3. 测试

启动Eureka Server的方式:

方法1 打包项目,命令行中启动:

1.打包项目,为jar包,在IDEA的Maven里面找到package双击即可生成 jar包。

2.在两个cmd中分别启动2个Eureka Server节点(注意jar包的路径):

通过--spring.profiles.active指定 使用哪个Profile启动

 

3.访问 http://localhost:8761 http://localhost:8762 会看到2个节点已经分别互相注册啦~
 
 
 

方法2 直接在IDEA启动:

1.通过修改IDEA的运行配置:

2.分别运行peer1和peer2:

3.浏览器访问即可啦~~~

2.4更精简的配置方式

修改配置文件application.yml,内容如下:

spring:
application:
name: microservice-discovery-eureka 
eureka:
client:
serviceUrl:
defaultZone: http://peer2:8762/eureka/, http://peer1:8761/eureka/
---
spring:
profiles: peer1
server:
port: 8761
eureka:
instance:
hostname: peer1
---
spring:
profiles: peer2
server:
port: 8762
eureka:
instance:
hostname: peer2

 

3.将微服务注册到Eureka Server集群 

 

以microservice-provider-user为例,只需要修改 eureka.client.serviceUrl.defaultZone ,配置多个地址:
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/, http://localhost:8762/eureka/
提示:
即使只配置Eureka Server集群一个节点的地址,因为集群节点间会相互同步,也可以正常注册到集群
建议配置多个节点地址,避免极端情况出现
 
 
访问 http://localhost:8761 http://localhost:8762 会看到microservice-provider-user已经注册到两个服务发现的节点啦~

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值