单节点请看:http://jameskaron.iteye.com/admin/blogs/2423742
多节点就是多个注册中心互相注册.
多节点例子:(因为在本地测试,可以在hosts里面先添加peer1& peer2都未127.0.0.1)
1.分别配置application-peer1.yaml:
server:
port: 1111
eureka:
instance:
hostname: peer1
client:
service-url:
defaultZone: http://peer2:1112/demo/eureka/
register-with-eureka: true
fetch-registry: true
spring:
application:
name: eureka-server
*注意:不要和application.yaml的全局配置冲突了,把全局的port和单节点的不自我注册注释掉.
配置application-peer2.properties:
spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=peer2
eureka.client.service-url.defaultZone=http://peer1:1111/demo/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
2.启动:
分别在控制台启动:
java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
当启动第一台服务器的时候,因为第二台还没启动,所以会报没找到default zone的错误.先不理,当第二台成功启动后自动会找到.
*注意有时候会出现spring cloud unavailable-replicas,那是因为注册中心并没有互相注册成功.一般是忘记了取消单节点的不自我注册.
参考:https://blog.csdn.net/u012470019/article/details/77973156
这样就实现了高可用的注册中心,启动client,会同时注册在peer1 和peer2中,即使peer1关闭,client仍在注册中心中peer2中,仍可以被peer2中的其他服务访问.