一、在上一篇的项目基础上进行扩展:在resourse下面添加三个配置文件,如下:
配置文件内容:三个配置文件分别进行配置,只需要修改端口和互相注册地址即可:
这里使用一个项目启用三个EurekaServer,分别占用不同的端口,实现Eureka集群服务:
eureka-server-1 : peer1 端口:8760 服务地址:http://peer1:8760/eureka/
eureka-server-2 : peer2 端口:8770 服务地址:http://peer1:8770/eureka/
eureka-server-3 : peer3 端口:8780 服务地址:http://peer1:8780/eureka/
每一个服务分别注册其余两个服务,
###########################################################
#########Eureka Server 集群: 多profile 配置################
###########################################################
##-------------peer1------------------
server:
port: 8760 #【需要修改的地方】
eureka:
server:
enableSelfPreservation: false #自我保护模式
response-cache-update-interval-ms: 30 #默认30更新一次响应缓存
instance:
hostname: peer1 #eureka服务端的实例名称
# 在Eureka中显示真实IP:端口号
prefer-ip-address: true
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
leaseRenewalIntervalInSeconds: 10
leaseExpirationDurationInSeconds: 30
client:
#register-with-eureka:表示是否将自己注册到eureka server,因为要构建集群环境,需要将自己注册到及群众,所以应该开启。默认为true,可不显式设置。
registerWithEureka: true #false表示不向注册中心注册自己。
#fetch-registry表示是否从eureka server获取注册信息,如果是单一节点,不需要同步其他eureka server节点,则可以设置为false,但此处为集群,应该设置为true,默认为true,可不设置。
fetch-registry: true #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
#注册到另外两个Server端
service-url:
defaultZone:
#单机设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
http://peer2:8770/eureka/,http://peer3:8780/eureka/ #【需要修改的地方】
二、由于我们使用了http://peer1这种写法,需要配一下host。Windows的host在C:\Windows\System32\drivers\etc\host,mac的在/private/etc
然后在启动项里配置三个服务的启动配置,如:
只需要确认以下三项正确就可以,分配配置为:peer1\peer2\peer3
配置完为以下三个启动项:
分别启动三个启动项:访问地址,效果如下:
http://localhost:8760/
这时候我们在将两个客户端同时指向peer1,启动查看效果:
此时可以看到两个客户端虽然只指向了peer1,但是在peer2,peer3节点已经被同步注册。