目标:本篇文章将手把手带你搭建Eureka-Server集群,来吧,搞定它!
1,首先,我们为什么要搭建微服务注册中心集群?
注册中心集群,保证高可用,这个很重要!
当注册中心挂掉之后,由于客户端保存有缓存,所以之前的服务依然可以正常交互,
但是后续的服务都无法接入和感知到其他服务节点的变化,所以,我们需要搭建一个高可用的服务注册中心集群
2,搭建微服务注册中心集群的步骤
1,Eureka集群需要两台以上,然后彼此进行注册即可, 刚启动时会报错,两两都启动之后,都找得到对方,则不会再报错。
2,实验阶段: 我们通过复制实例,并且在启动时,设置不同的端口及配置文件修改为对方的服务地址即可,或者配置文件配置两份信息即可。
生产环境肯定是部署在两台不同的云主机上,否则部署在同一台云主机,那就没有可用性的意义了。
3,修改配置,注意:application.name要保持一致
注意:采用ip或localhost域名的配置是有差异的,此处有坑,切记切记!
采用ip的方式配置
spring:
application:
name: eureka-service
---
spring:
profiles: eurekaService1
server:
port: 8888
eureka:
instance:
appname: eureka-service
#hostname: localhost1
client:
service-url:
defaultZone: http://127.0.0.1:8866/eureka/
server:
enable-self-preservation: false #关闭自我保护
eviction-interval-timer-in-ms: 3000 #剔除服务间隔,单位毫秒
---
spring:
profiles: eurekaService2
server:
port: 8866
eureka:
instance:
appname: eureka-service
#hostname: localhost2
client:
service-url:
defaultZone: http://127.0.0.1:8888/eureka/
server:
enable-self-preservation: false #关闭自我保护
eviction-interval-timer-in-ms: 3000 #剔除服务间隔,单位毫秒
采用域名的方式
如果采用域名的方式,要设置不同的hostname才可以配置集群成功
spring:
application:
name: eureka-service
---
spring:
profiles: eurekaService1
server:
port: 8888
eureka:
instance:
appname: eureka-service
hostname: localhost1
client:
service-url:
defaultZone: http://localhost:8866/eureka/
---
spring:
profiles: eurekaService2
server:
port: 8866
eureka:
instance:
appname: eureka-service
hostname: localhost2
client:
service-url:
defaultZone: http://localhost:8888/eureka/
4,分别启动两台Eureka-server服务实例
5,Eureka的关键参数配置说明
eureka:
client:
service-url:
defaultZone: http://localhost:8888/eureka/,http://localhost:8866/eureka/
registry-fetch-interval-seconds: 30
instance:
lease-renewal-interval-in-seconds: 30
lease-expiration-duration-in-seconds: 90
registry-fetch-interval-seconds:每隔30秒抓取一次新的注册信息
lease-renewal-interval-in-seconds:客户端的实例会向服务器发送周期性的心跳,默认是30秒/次 服务器接收心跳请求,如果超过3次没有收到客户端的心跳包,则认为是有问题的, 那么会将该实例从注册表中删除掉,这个时间是90秒