在前一篇文章中,咱们介绍了eureka服务注册中心的使用,主要用途就是用于管理多个服务的多个实例,实现服务的高可用; 可是有人就会想到,服务都是能够用的,可是若是个人服务注册中心挂了,那么是否是全部的服务都不可用了呢? 这时咱们就会想到对服务注册中心作HA;html
还记得注册中心的一条配置么?spring
eureka.client.register-with-eureka: false
是否注册到注册中心,当咱们有多个注册中心时,这条配置就有使用价值了; 咱们在新建一个module,名字为EurekaServerBak,依赖等引入彻底相同,不一样的是sever.port=8762; 将上面的配置改成true,且fetch-registry=true;app
EurekaServer配置以下:源码分析
server: port: 8761 #端口号 eureka: instance: hostname: peer1 home-page-url: swagger-ui.html client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/ server: enable-self-preservation: false spring: application: name: eureka-server #应用名
EurekaServerBak配置以下:fetch
server: port: 8762 #端口号 eureka: instance: hostname: peer2 home-page-url: swagger-ui.html client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/ server: enable-self-preservation: false spring: application: name: eureka-server #应用名
此时咱们须要配置一下host文件,将peer1和peer2分别解析为本地地址127.0.0.1;为什么如此下面有说明;ui
也能够点击查看Spring Cloud Eureka 源码分析(一) 服务端启动过程 的3.1.3小节的源码分析;url
这时分别启动两个服务,并打开eureka实例列表页面,能够看到两个Eureka服务相互注册在彼此了; 这时咱们启动客户端,会发如今两个注册中心都会有注册记录;spa
1.问什么要添加peer1,peer2做为代替localhost? 若是没有这样作,能够试一下,你会发现一个服务实例只能注册在一个eureka的注册中心,没法注册到全部的注册中心; 分析缘由是由于eureka对hostname作了过滤,但没有检查port致使的;
这里连接一篇文章,将eureka的心跳时间等作了简单的解释; http://fengyilin.iteye.com/blog/2367265;.net