Sring Cloud入门(二)Eureka高可用,整合Ribbon

在上一篇Sring Cloud入门(一)注册中心 Eureka中,只搭建了一个Eureka注册中心,存在单点故障,无法保证高可用。所以我们这次需要对注册中心进行升级改造,搭建2个Eureka注册中心,彼此相互注册,这样的话其中一个Eureka注册中心故障了,不至于整个注册中心瘫痪。
在项目order-server下增加2个配置文件application-server1.properties和application-server2.properties
表示eureka集群的2个节点
在这里插入图片描述
将application.properties里面的server.port=8761去掉
在application-server1.properties中新增如下配置

#设置server1节点端口
server.port=8761
#将server1节点注册到server2节点
eureka.client.serviceUrl.defultZone=http://localhost:8762/eureka/

在application-server2.properties中新增如下配置

#设置server2节点端口
server.port=8762
#将server2节点注册到server1节点
eureka.client.serviceUrl.defultZone=http://localhost:8761/eureka/

这样一来,2个节点就相互注册上了,我们可以通过启动参数 --spring.profiles.active=server1和–spring.profiles.active=server2来分别启动注册中心这个项目。

启动成功后,我就拥有了http://localhost:8761/和http://localhost:8762/ 这2个Eureka注册中心,保证了高可用,其中一个挂掉后,还能剩下一个继续提供服务。

接下来再来改造一下服务之间的调用,到目前为止服务与服务之间调用是直接使用写死的ip+端口
如果哪天ip地址或端口号变更,微服务实例少则几十,多则几百上千,每一个都要修改这无疑是一场灾难。
既然服务已经在eureka注册了,那么就可以将调用地址替换成服务名称的方式了,这就是ribbon给我们提供的功能,只需要在RestTemplate加上@LoadBalanced注解;
在这里插入图片描述

系统将能识别出服务名称,再也无需关系调用的ip是多少,端口是多少,只需要在eureka注册中心中获取服务名称即可。
在这里插入图片描述
服务调用从 http://localhost:8082/order/pay 换成了 http://order-pay/order/pay。
注解@LoadBalanced还有一个更大的功能,即他的字面意思,负载均衡。
目前系统中每个模块都还是单实例,存在单点故障,也需要改造成双节点,方法和前面的eureka双节点搭建是一样的,这里以order-create为例子,新增2个配置文件application-n1.properties和application-n2.properties代表2个节点不同的端口配置,分别是server.port=8880和server.port=8881,配置好idea的启动参数,分别启动2个order-pay实例
在这里插入图片描述
当我使用服务消费者order-user项目来访问order-create服务的时候,ribbon就会使请求均衡的分发到2个实例上。实现了负载均衡。
order-pay和order-deliver也按同样的样式搭建双节点集群,这里就不再详细描述了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值