Spring cloud 高可用服务注册中心
之前的服务注册中心,只是一个单点的注册中心,即只有一个eureka。而高可用注册中心会有多个eureka,且这些eureka两两互相注册。
1:这里利用之前的eureka。在resource下创建application-peer1.properties
spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/
2:resource目录下继续创建application-peer2.properties
spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/
通过两个配置文件知道,单点的配置涉及阻止注册中心自己注册自己。而高可用的配置,发现两个注册中心相互注册。peer1指向peer2,peer2指向peer1
这个的好处就是当peer1的注册中心故障关闭时,在peer2上还是能正常操作,只是显示peer1不可用而已。
3:分别启动两个配置文件,这里我采用的是在IDEA上设置分别启动。因为我采用java -jar方式是失败了,maven甚至不能install,由于是个技术小白,还没有解决这个问题
按照上面的步骤就可以分别启动两个注册中心,因为两个注册中心会相互注册,当一个启动另一个没有启动时会报错,这个时候不用管出错的信息,正常启动就行。最后你会发现两个注册中心已经相互注册了,这两个服务注册形成了一个小的集群
4:访问http://peer1:11111/和http://peer2:1112/都能正常访问。
http://peer1:1111/或http://localhost:1111/
http://peer2:1112/或者http://localhost:1112/
5:computer-server的项目上,更改application.properties的配置
spring.application.name=computer-service service.port=2222 eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/S
6:启动服务,分别访问http://peer1:1111/和http://peer2:1112/
7:关闭peer1,再次访问http://peer1:1111/和http://peer2:1112/
peer1的注册中心现在不能访问
peer2的注册中心仍能正常访问
综上:
高可用作用:即使peer1的注册中心崩溃,在peer2上注册的服务仍能访问computer-server。