环境:
Mac + Intellij2017
思路:
只要单机的服务注册中心搭建成功了,再复制一台单机,将2台单机互为主备即可实现。
基本代码同单机搭建一样,不再赘术,具体。
服务端配置:
在原来配置文件基础上,再复制一份,一个名叫application-peer1.properties,另一个名叫application-peer2.properties,内容分别如下:
application-peer1.properties内容如下:
spring.application.name=eureka-serverserver.port=8081eureka.instance.hostname=peer1#eureka.instance.port=8082eureka.client.registerWithEureka=trueeureka.client.fetchRegistry=trueeureka.client.serviceUrl.defaultZone=http://peer2:8082/eureka/
application-peer2.properties内容如下:
spring.application.name=eureka-serverserver.port=8082eureka.instance.hostname=peer2#eureka.instance.port=8081eureka.client.registerWithEureka=trueeureka.client.fetchRegistry=trueeureka.client.serviceUrl.defaultZone=http://peer1:8081/eureka/
注意,这里需要配置一下Host,如下:
127.0.0.1 peer1127.0.0.1 peer2
运行,这里利用了,即一个程序,通过传入不同的参数,使用不同的配置文件
java -jar eurekaserver-1.0-SNAPSHOT.jar --spring.profiles.active=peer1java -jar eurekaserver-1.0-SNAPSHOT.jar --spring.profiles.active=peer2
通过以上2步,我们看到的控制台如下图所示:
客户端配置
server: port: 1111spring: application: name: eureka-client-germmyeureka: instance: hostname: localhost port: 8081 client: serviceUrl: defaultZone: http://peer1:8081,http://peer2:8082/eureka/
成功。
注意事项:
1、eureka server的配置文件可以是properties,yml也可以,spring.profiles.active同样能识别yml,亲测有效。
2、IEDA中新建一个run时,要选上build,否则会采用上一个配置,如下图所示
3、host配置完了再仔细一遍,我配置时竟然配置了127.0.0.2 peer2,导致eureka server死活连不上,这个问题至少耽误我1小时。发现报错说8082连不时才去查。
4、eureka.instance.hostname这个必须是设置本机在eureka中显示的名称,不能用作他用,不能让它放在defaultZone中,否则eureka server高可用配置不成功。
5、IDEA中,如果日志刷新过快,影响观看的话,可以讲控制台的Docked前面的勾去掉,这样就会固定了。