您的位置:首页 > 运维架构 > 网站架构

(2) Eureka高可用注册中心

2017-10-14 21:26 369 查看
在微服务分布式架构中,生产环境必须对各个组件进行高可用部署,对于服务中心也一样。

Eureka Server的高可用就是将自己作为服务向其他服务注册中心注册自己,从而形成一组

相互注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果。

对以下对文章中的基础项目进行扩展,实现Eureka Server高可用:

http://blog.csdn.net/yhl_jxy/article/details/78235002

一 搭建Eureka Server高可用注册中心

1. 在项目eureka-server中resources下新增两个配置文件,

application-peer1.properties、application-peer2.properties

项目结构如图:



配置文件内容:

创建application-peer1.properties,作为peer1服务中心配置,将注册地址指向peer2

spring.application.name=eureka-server
server.port=1111

eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true


创建application-peer2.properties,作为peer2服务中心配置,将注册地址指向peer1

spring.application.name=eureka-server
server.port=1112

eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true

在peer1,peer2中显示指定以下两行配置为true:

eureka.client.register-with-eureka=true

eureka.client.fetch-registry=true

其实默认值就是true,但是在application.properties中配置的是false,

因为文件加载顺序文件,导致我们启动项目指定配置文件时会默认从

application.properties中读取这两个默认false值,导致服务不能自我注册,

从而高可用注册中心无法发现可用分片,很容易掉在这个小坑里。

如果对这段话不是很理解,可以读完这篇文章,然后回头看这段话。

2. windows系统下在C:\Windows\System32\drivers\etc\hosts文件中增加如下内容,

如果是linuex下,通过vim /etc/hosts配置内容一致,主要是让本地能够访问。

127.0.0.1 peer1

127.0.0.1 peer2

3. 把eureka-server打成jar包,根据jar -jar命令,通过spring.profiles.active指定peer1和pee2分别启动应用,

spring.profiles.active为spring boot的特性。

java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1

java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

eg:

cd到eureka-server-0.0.1-SNAPSHOT.jar所在目录,然后执行启动命令



回车启动即可,对于peer2也一样。

启动完成后访问peer1注册中心: http://localhost:1111/



我们可以看到,registered-replicas中已经有peer2节点的eureka-server,

同时,也可以看到最后一条peer2在可用分片中。

peer2注册中心: http://localhost:1112/



同理,我们可以看到,registered-replicas中已经有peer1节点的eureka-server,

同时,也可以看到最后一条peer1在可用分片中。

4. 高可用注册中心已经搭建完成,服务提供方使用配置需要稍作调整

比如,eureka-client中application.properties修改注册中心地址为:

eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1111/eureka/

启动eureka-client服务提供者,再刷新peer1和peer2注册中心,

可以看到eureka-client应用hello-service已经同时注册到peer1,peer2两个注册中心,

如果其中一个注册中心挂掉,服务任然可用,这就是传说中的高可用,就是留有招。





5. 服务提供者启动访问
http://localhost:2222/hello
浏览器响应效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: