前言:
在实际的项目中,微服务实例可能不只一个,此时Eureka Server承担了非常高的负载,在微服务架构中Eureka Server又扮演着举足轻重的作用,对其进行高可用集群不可或缺.如下文章,是建立在已经搭建了Eureka Client和Eureka Server的Maven多Module的结构的工程,在此基础上进行高可用集群配置.
正文:
第一步:更改eureka-server的配置文件application.yml,在该配置文件中采用多profile的格式,代码如下:
---
spring:
profiles: peer1
server:
port: 8761
eureka:
instance:
hostname: peer1
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://peer2:8762/eureka/
server:
peer-node-read-timeout-ms: 6000
---
spring:
profiles: peer2
server:
port: 8762
eureka:
instance:
hostname: peer2
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://peer1:8761/eureka/
server:
peer-node-read-timeout-ms: 6000
说明:定义了两个profile文件,分别为peer1和peer2,它们的hostname分别为peer1和peer2,在实际的开发中,修改为具体的服务器IP地址,端口分别为: 8761和8762.
第二步,修改host文件
注意: 在本地搭建Eureka Server集群, 所以需要修改本地的host.Windows系统的电脑在c:/windows/systems/drivers/etc/hosts中修改,Mac系统的电脑通过终端vim/etc/hosts进行编辑修改,内容如下:
127.0.0.1 peer1
127.0.0.1 peer2
第三步,编辑maven工程
mvn clean package
第四步,启动工程:启动两个Eureka Server实例
通过java-jar的方式启动工程, 并通过spring.profiles.active指定启动的配置文件.
>启动peer1实例
>启动peer2实例
第五步,修改eureka-client的配置文件application.yml
修改其端口为8763,并且仅向8761的Eureka Server注册,代码如下:
eureka:
client:
service-url:
defalutZone: http://peer1:8761/eureka/
server:
port: 8763
spring:
application:
name: eureka-client
第六步,启动eureka-client工程
说明:访问http://peer1:8761/可以发现,eureka-client已向peer1节点的Eureka Server注册,且在DS Replicas选项中显示了节点peer2,这时,eureka-client工程的配置文件中并没有指定向peer2的节点Eureka Server注册.访问Eureka Server的节点peer2的主界面,界面的 Url地址为http://peer2:8762/.节点peer2的主界面显示Eureka Clienty已经向peer2节点注册,
结语:
the best preparaction for tomorrow is doing your best today.