irpas技术客

springCloud eureka高可用_再好能是***嘛!_eureka 高可用

未知 1574

高可用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:\Windows\System32\drivers\etc\hosts 文件,在里面添加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 现在,再次访问订单服务仍然没有问题,实际上,提供商品服务的一台服务器已经故障了 注册的服务中也只剩下一个了,但是并没有影响我们的业务访问。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Eureka #高可用 #高可用HAHigh #Peer #To