构建高可用的Eureka Server集群
在之前的学习过程中,学习搭建了一个简单的单节点的Eureka Server,但是在实际应用中,往往会面临着几百个甚至更多的微服务实例,这个时候Eureka Server就会承担非常高的负载,单节点的Eureka Server肯定是不可能承受如此高的负载的,所以就需要搭建高可用的Eureka Server集群。
本次搭建是在之前的工程基础上进行优化修改。首先修改eureka-server的配置文件application.yml,在配置文件中采用多profile的格式:
# 高可用的Eureka Server的配置信息
---
spring:
profiles: peer1
server:
port: 8761
eureka:
instance:
hostname: peer1
client:
service-url:
defaultZone: http://peer2:8762/eureka/
# 防止Eureka-Server自己注册成一个服务
registerWithEureka: false
fetchRegistry: false
---
spring:
profiles: peer2
server:
port: 8762
eureka:
instance:
hostname: peer2
client:
service-url:
defaultZone: http://peer1:8761/eureka/
# 防止Eureka-Server自己注册成一个服务
registerWithEureka: false
fetchRegistry: false
配置完成之后,可以在idea的命令行界面cd 到Eureka-Server目录下,进行mvn clean package进行打包,就会在target目录下生成对应的jar文件
由于是在你本地搭建集群,所以需要修改hosts文件,在文件中添加
127.0.0.1 peer1
127.0.0.1 peer2
添加完之后关闭文件,hosts文件并不会马上生效,需要在Windows的cmd窗口中刷新dns。相应的命令是:ipconfig/flushdns,刷新完之后文件就生效了
之后就需要分别用所配置的2个profiles启动生成的jar包
启动完成eureka-server之后,需要修改eureka-client配置文件中的端口
server:
port: 8763
spring:
application:
name: eureka-client
eureka:
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka/
启动客户端之后,访问http://peer1/8761/ ,就可以看到eureka-client以及向peer1节点Eureka Server注册了,并且在DS Replicas选项中显示了节点peer2,具体如图所示:
到此为止,就搭建好了一个简单的Eureka-Server集群