栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springCloud eureka高可用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springCloud eureka高可用

高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指:通过设计减少系统不能提供服务的时间。
 eureka 注册中心怎么高可用?答案是:对等复制,即 Peer to Peer 模式,副本之间不分主从,任何副本都可以接收写操作,然后每个副本之间相互进行数据更新。
 分为两部分
 第一部分:服务端的高可用

1.代码实践,创建一个 eureka-server-ha 高可用注册中心服务端,客户端只要向多个服务端注册即可,大部分代码和 eureka-server 一样,配置文件不一样了,需要多个配置文件结合,启动 eureka-server-ha 项目时,指定使用那个配置文件。
假设为了达到高可用,我们需要启动3个 eureka-server 节点,3个节点的实例名分别是 peer1、peer2、peer3,它们之间相互注册,如:peer1向peer2、peer3注册,peer2向peer1、peer3注册,peer3向peer1、peer2注册来达到高可用

创建一个 bootstrap.properties,在启动项目时,它里面的配置会优先加载,它里面配置security的帐号密码

peer1 使用10025端口,对应application-peer1.properties

peer2 使用10026端口,对应application-peer2.properties

peer3 使用10027端口,对应application-peer3.properties

windwos 下 peer 需要修改 C:WindowsSystem32driversetchosts 文件,在里面添加peer1-3的映射
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3

这里分别贴出各配置文件代码:
#bootstrap.properties 配置登录的用户名和密码
spring.security.user.name=zy
spring.security.user.password=zy123

# application-peer1.properties
server.port=10025
spring.application.name=eureka-server-ha
spring.profiles.active=peer1
eureka.instance.hostname=peer1
eureka.client.registerWithEureka=true
# peer1 向 peer2、peer3注册
eureka.client.serviceUrl.defaultZone=http://zy:zy123@peer2:10026/eureka/,http://zy:zy123@peer3:10027/eureka/

#application-peer2.properties
server.port=10026
spring.application.name=eureka-server-ha
spring.profiles.active=peer2
eureka.instance.hostname=peer2
eureka.client.registerWithEureka=true
# peer2 向 peer1、peer3注册
eureka.client.serviceUrl.defaultZone=http://zy:zy123@peer1:10025/eureka/,http://zy:zy123@peer3:10027/eureka/

#application-peer3.properties
server.port=10027
spring.application.name=eureka-server-ha
spring.profiles.active=peer3
eureka.instance.hostname=peer3
eureka.client.registerWithEureka=true
# peer3 向 peer1、peer2注册
eureka.client.serviceUrl.defaultZone=http://zy:zy123@peer1:10025/eureka/,http://zy:zy123@peer2:10026/eureka/

cd 打包目录,否则会找不到jar,cmd启动命令如下:
java -jar eureka-server-ha-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar eureka-server-ha-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar eureka-server-ha-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3

2.eureka-client 只需修改注册中心的地址即可,配置如下:
server.port=9600
spring.application.name=eureka-client
eureka.instance.prefer-ip-address=true
#eureka 注册中心高可用配置
eureka.client.serviceUrl.defaultZone=http://zy:zy123@peer1:10025/eureka/,http://zy:zy123@peer2:10026/eureka/,http://zy:zy123@peer3:10027/eureka/

OK,注册中心的高可用已经完成,3个节点,挂掉一个并没有影响,还有2个节点能提供服务

第二部分:客户端的高可用

我们已经有了三台服务端了商品服务、订单服务、服务中心,为了展示目前的效果,我们再启动一个商品服务。
首先我们修改goods中的application.yml的端口号为8081,
然后点击顶部的模块选择,点击Eidt Configurations 
依次修改名称为GoodsApplication01,MainClass选择GoodsApplication,Use classpath of module选择goods,点击Apply后选择OK完成

然后,在顶部选择刚才创建的GoodsApplication01并启动,现在,我们可以看到,已经启动了四个服务:
等到启动完成后,GoodsApplication01会在服务中心注册一个新的商品服务,我们现在打开http://127.0.0.1:7000/会发现服务中心已经有两个注册的服务了,此时访问订单服务,一切正常

现在,我们模拟单台服务故障,我们手动关闭GoodsApplication01
现在,再次访问订单服务仍然没有问题,实际上,提供商品服务的一台服务器已经故障了 注册的服务中也只剩下一个了,但是并没有影响我们的业务访问。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716322.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号