(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
创建application-peer2.properties,作为peer2服务中心配置,将注册地址指向peer1
在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
浏览器响应效果:
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
浏览器响应效果:
相关文章推荐
- Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用-服务提供和消费
- 【Spring Cloud】--注册中心Eureka的高可用配置
- Eureka高可用注册中心,available-replicas不出现分布式注册中心
- (2-1)SpringCloue-Eureka实现高可用注册中心
- Eureka 注册中心的高可用
- 一起来学SpringCloud之 - 高可用服务注册中心(Eureka-Cluster)
- SpringCloud--构建高可用Eureka注册中心
- spring cloud 学习(2) - eureka server注册中心高可用及安全认证
- SpringCloud(第 051 篇)EurekaServer集群高可用注册中心以及简单的安全认证
- 架构师入门:搭建双注册中心的高可用Eureka架构(基于项目实战)
- SpringCloud(三)Eureka注册中心实现高可用
- (三)SpringBoot+SpringCloud —— 高可用的Eureka注册中心
- SpringCloud之高可用的服务注册中心(Eureka) |第八章 -yellowcong
- SpringCloud(第 051 篇)EurekaServer集群高可用注册中心以及简单的安全认证
- SpringCloud(第 051 篇)EurekaServer集群高可用注册中心以及简单的安全认证
- 笔记:Spring Cloud Eureka 高可用注册中心
- Spring Cloud (19) | Eureka Server 高可用服务注册中心
- Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建
- springcloud实战之3 高可用服务注册中心(eureka集群)
- eureka高可用注册中心