集群效果图(引用程序猿弟弟的图)
1.配置文件
本地搭建三个节点peer1、peer2、peer3两两互相注册。
项目搭建过程省略,直接上节点的配置
peer1
spring.application.name=eureka-server1
server.port=1111
#eureka服务端的名称
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/,http://peer3:1113/eureka/
#不在注册中心注册自己
eureka.client.register-with-eureka=true
#表示自己就是注册中心,不需要检索服务,只需要维护服务实例
eureka.client.fetch-registry=true
peer2
spring.application.name=eureka-server2
server.port=1112
#eureka服务端的名称
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer3:1113/eureka/
#不在注册中心注册自己
eureka.client.register-with-eureka=true
#表示自己就是注册中心,不需要检索服务,只需要维护服务实例
eureka.client.fetch-registry=true
peer3
spring.application.name=eureka-server3
server.port=1113
#eureka服务端的名称
eureka.instance.hostname=peer3
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/
#不在注册中心注册自己
eureka.client.register-with-eureka=true
#表示自己就是注册中心,不需要检索服务,只需要维护服务实例
eureka.client.fetch-registry=true
因为是在本地实验,所以修改host文件(windows系统下、C:\Windows\System32\drivers\etc)
2.项目启动配置不同配置文件启动
配置好peer1、peer2、peer3的启动配置后,依次启动项目。
观察启动日志,在启动过程中由于节点之间相互依赖在未都完全启动完成的时候会出现如下的错误日志,
原因在图片中有说明
3.启动成功后的效果如下
localhost:1111
localhost:1112
localhost:1113
4.启动服务提供者,将服务注册到peer1节点,观察peer2、和peer3
配置文件如下;
#指定注册到eureka server上的服务名称
spring.application.name=eureka-client
#端口
server.port=2001
#指定eureka server通信地址
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
# 是否注册IP到eureka server,如不指定或设为false,那就会注册主机名到eureka server
eureka.client.instance.prefer-ip-address: true
启动后peer1节点的效果如下:
切换到peer2节点:
切换到peer3节点:
关闭peer1节点观察效果:
peer2、peer3节点还能继续提供服务