使用Spring Cloud搭建高可用服务注册中心

使用Spring Cloud搭建高可用服务注册中心

https://mp.weixin.qq.com/s/ie042Q_h8ppsroEjQ0bdgg

                <p style="margin: 0px 0px 1.2em !important;">我们需要的,不仅仅是一个服务注册中心而已,而是一个高可用服务注册中心。</p><hr><p style="margin: 0px 0px 1.2em !important;">上篇博客【<a href="http://mp.weixin.qq.com/s?__biz=MzI1NDY0MTkzNQ==&amp;mid=2247483878&amp;idx=1&amp;sn=d49f2eb61bada3d34443a0a4017a7b72&amp;chksm=e9c35386deb4da901454e21ec73c8d7489f515d4f2f7633b1eec2fde93053c03737ac860dfc8&amp;scene=21#wechat_redirect" target="_blank">使用Spring Cloud搭建服务注册中心</a>】中我们介绍了如何使用Spring Cloud搭建一个服务注册中心,但是搭建好的服务注册中心是一个单节点的服务注册中心,这样一旦发生了故障,那么整个服务就会瘫痪,所以我们需要一个高可用的服务注册中心,那么在Eureka中,我们通过集群来解决这个问题。Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就会形成一组互相注册的服务注册中心,进而实现服务清单的互相同步,达到高可用的效果。OK,由于本文的效果是在上篇博客【<a href="http://mp.weixin.qq.com/s?__biz=MzI1NDY0MTkzNQ==&amp;mid=2247483878&amp;idx=1&amp;sn=d49f2eb61bada3d34443a0a4017a7b72&amp;chksm=e9c35386deb4da901454e21ec73c8d7489f515d4f2f7633b1eec2fde93053c03737ac860dfc8&amp;scene=21#wechat_redirect" target="_blank">使用Spring Cloud搭建服务注册中心</a>】的基础上实现的,所以建议小伙伴们先阅读上文,否则本文阅读可能会没有头绪。</p><p style="margin: 0px 0px 1.2em !important;">OK,废话不多说,我们就来看看如何搭建高可用注册中心。</p><h1 style="margin: 1.3em 0px 1em; padding: 0px; font-weight: bold; font-size: 1.6em; border-bottom: 1px solid rgb(221, 221, 221);">增加配置文件</h1><p style="margin: 0px 0px 1.2em !important;">在上篇博客中,我们创建了一个名叫eureka-server的服务注册中心,那么在本文中,我将修改这个工程的配置文件,进而将其启动多次。如下,我向这个工程中添加两个配置文件application-peer1.properties和application-peer2.properties:</p><p style="margin: 0px 0px 1.2em !important;"><img data-src="https://mmbiz.qpic.cn/mmbiz_png/GvtDGKK4uYn9lpXK5EuBzEbK8b7qCE7eSHic5ETmU1V8Icgicol6pMZ1XhSNYE4WrdVBOicSzgykz6iakBT30icevibA/0?wx_fmt=png" data-type="png" class="" data-ratio="1.338235294117647" data-w="340" _width="340px" src="https://mmbiz.qpic.cn/mmbiz_png/GvtDGKK4uYn9lpXK5EuBzEbK8b7qCE7eSHic5ETmU1V8Icgicol6pMZ1XhSNYE4WrdVBOicSzgykz6iakBT30icevibA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 340px !important; height: auto !important; visibility: visible !important;" crossorigin="anonymous" data-fail="0"><br>两个配置文件的内容分别如下:<br>application-peer1.properties:</p><pre style="font-family: Consolas,Inconsolata,Courier,monospace; font-size: 1em; line-height: 1.2em; margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace; margin: 0px 0.15em; background-color: rgb(248, 248, 248); white-space: pre; overflow: auto; border-radius: 3px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); -moz-border-top-colors: none; -moz-border-right-colors: none; -moz-border-bottom-colors: none; -moz-border-left-colors: none; padding: 0.5em 0.7em; display: block !important;">server.port=1111

eureka.instance.hostname=peer1
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://peer2:1112/eureka/

application-peer2.properties:

server.port=1112
eureka.instance.hostname=peer2
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/

关于这两个配置文件我说如下几点:

1.在peer1的配置文件中,让它的service-url指向peer2,在peer2的配置文件中让它的service-url指向peer1
2.为了让peer1和peer2能够被正确的访问到,我们需要在C:\Windows\System32\drivers\etc目录下的hosts文件总添加两行配置,如下:
127.0.0.1 peer1
127.0.0.1 peer2
3.由于peer1和peer2互相指向对方,实际上我们构建了一个双节点的服务注册中心集群

生成jar文件

OK,这次我们不直接从IDEA中启动项目,而是先给工程生成jar文件,生成方式如下,双击package生成:


生成结果如下:

 

启动项目

生成jar文件之后,我们在命令行通过java命令来启动项目,在启动的时候我们可以设置采用不同的配置文件来启动项目,命令如下:

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

这两行命令表示我们分别采用application-peer1.properties和application-peer2.properties两个配置文件来启动应用,OK,执行完这两个命令之后,我们的服务注册中心就启动了两个了,效果图如下:

 

 

我们可以看到,在peer1的节点的DS replicas我们已经可以看到peer2节点了,在peer2的DS replicas中我们也可以看到peer1节点了。

OK,如此之后,我们的服务注册中心集群就搭建好了,然后我们可以做一个简单的测试。

测试

修改上篇博客中提到的provider项目的配置文件,如下:

spring.application.name=hello-service  
eureka.client.service-url.defaultZone=http://peer1:1111/eureka,http://peer2:1112/eureka

小伙伴们注意,我们在service-url中添加了两个注册中心地址,两个地址中间用,隔开,OK,修改一下这里就可以了,接下来我们来启动这个项目,启动成功之后我们再去刷新http://localhost:1111和http://localhost:1112 两个页面,我们会发现我的服务提供者在这两个服务注册中心都注册了,如下:

 

 

OK,至此,一个高可用的服务注册中心我们就搭建成功了,有问题欢迎留言讨论。下篇文章我们就来看看Spring Cloud中服务的发现与消费  

本文案例地址:https://github.com/lenve/SimpleSpringCloud  

更多JavaEE资料请关注公众号:

 

以上。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值