【读书笔记】3.1高可用注册中心

高可用原理

eureka.client.register-with-eureka=true(默认为true)
eureka.client.fetch-registry=true(默认为true)
Eureka的高可用,实际上是将自己作为服务向其他服务注册中心注册自己,形成一组相互注册的服务注册中心,同步服务清单。

搭建步骤

  1. 准备两份application-{profiles}.properties
    application-peer1.properties作为peer1服务中心的配置,将serviceUrl指向peer2
    application-peer2.properties作为peer2服务中心的配置,将serviceUrl指向peer1
    #peer1配置示例
    spring.application.name=eureka-server
    server.port=1111
    eureka.instance.hostname=peer1
    eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka
  2. 修改本地hosts,让host形式配置的servieUrl能在本地正确访问
    windows系统路径为C:\Windows\System32\drivers\etc\hosts
    127.0.0.1 peer1
    123.0.0.1 peer2
  3. 启动服务注册中心
    java -jar xx.jar –spring.profles.active=peerxx
    启动peer1,访问localhost:1111可以看到分片信息(此时为不可用)
    这里写图片描述
    启动peer2,刷新localhost:1111,可以看到peer2作为服务注册到peer1,且分片可用
    这里写图片描述

其他

多节点集群

原理:peer1向peer2注册,peer2向peer3注册,peer3向peer1注册,形成闭环
1. host文件添加127.0.0.1 peer3
2. peer1配置示例(peer1注册到peer2)
spring.application.name=eureka-server
eureka.instance.hostname=peer1
server.port=1111
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka
eureka.server.enable-self-preservation=false

3. 打成jar(会有一些报错),用java -jar xx.jar –spring.profiles.active=peerxx分别启动三个注册中心
4. 观察

  • 访问localhost:1111,发现peer2与peer3是注册在peer1的,而peer1自己则向peer2注册
    这里写图片描述
  • 访问localhost:1112,发现peer1与peer3是注册在peer2的,而peer2自己则向peer3注册
    这里写图片描述
  • 访问localhost:1113,一定会发现peer1和peer2注册在peer3,peer3又向peer1注册

分片不可用

检查
1. eureka.client.serviceUrl.defaultZone不能使用localhost(可以在host文件配置ip和主机名)
2. 两边的spring.application.name或eureka.instance.appname要一致
3. eureka.client.register-with-eureka和eureka.client.fetch-registry要设置为true(默认true)

猜你喜欢

转载自blog.csdn.net/coder1994/article/details/80646789