eureka服务注册集群springcloud

如何搭建了一个EurekaServer,这里不说了,但是很明显只有一个EurekaServer是单点服务,而我们都知道,服务注册中心是整个分布式系统的核心,我们所有的微服务实例都注册在其中,一旦该服务注册中心宕机,则可能导致整个服务集群瘫痪,所以很明显在真实的生产环境中,我们必须将注册中心进行集群化部署(至少2个节点),那么接下来我们来搭建一个简单的2个节点的集群吧.
1.环境准备
我准备了2台机器,因为我打算在2台机器上部署2个实例;其实也可以一台机器上部署,但是我是为了更好的模拟真实环境
2.准备好工程,我沿用了之前的工程(discover-server)
3.配置更改
第一份配置如下:
#端口

server.port=8761

spring.application.name=x-discover-server

eureka.instance.hostname=10.0.2.23

#配置另一个服务注册中心实例的host和port

eureka.server.host=10.0.2.24

eureka.server.port=8762

#通过eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server.

#register-with-eureka:表示是否将自己注册到eureka server,因为要构建集群环境,需要将自己注册到集群中,所以应该开启。默认为true,可不显式设置。

eureka.client.register-with-eureka=true

#fetch-registry:表示是否从eureka server获取注册信息,如果是单一节点,不需要同步其他eureka server节点,则可以设置为false,但此处为集群,应该设置为true,默认为true,可不设置。

eureka.client.fetch-registry=true

eureka.client.serviceUrl.defaultZone=http://${eureka.server.host}:${eureka.server.port}/eureka/



#-----------------------------------关闭eureka自我保护---------------------------------------

#注意:更改Eureka更新频率将打破服务器的自我保护功能,生产环境下不建议自定义这些配置。

#Eureka Server端:配置关闭自我保护,并按需配置Eureka Server清理无效节点的时间间隔

#设为false,关闭自我保护

eureka.server.enable-self-preservation=false

#清理间隔(单位毫秒,默认是60*1000)

eureka.server.eviction-interval-timer-in-ms=4000

第二份配置如下:
#端口

server.port=8762

spring.application.name=x-discover-server

#eureka 实例名

eureka.instance.hostname=10.0.2.24

#配置另一个服务注册中心实例的host和port

eureka.server.host=10.0.2.23

eureka.server.port=8761

#通过eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server.

#register-with-eureka:表示是否将自己注册到eureka server,因为要构建集群环境,需要将自己注册到及群众,所以应该开启。默认为true,可不显式设置。

eureka.client.register-with-eureka=true

#fetch-registry:表示是否从eureka server获取注册信息,如果是单一节点,不需要同步其他eureka server节点,则可以设置为false,但此处为集群,应该设置为true,默认为true,可不设置。

eureka.client.fetch-registry=true

eureka.client.serviceUrl.defaultZone=http://${eureka.server.host}:${eureka.server.port}/eureka/



#-----------------------------------关闭eureka自我保护---------------------------------------

#注意:更改Eureka更新频率将打破服务器的自我保护功能,生产环境下不建议自定义这些配置。

#Eureka Server端:配置关闭自我保护,并按需配置Eureka Server清理无效节点的时间间隔

#设为false,关闭自我保护

eureka.server.enable-self-preservation=false

#清理间隔(单位毫秒,默认是60*1000)

eureka.server.eviction-interval-timer-in-ms=4000

配置具体说明见内容
分别打包2份配置,并将2个jar部署到对应的机器,访问10.0.2.23:8761
如图,x-discover-server已经启动了2个实例,10.0.23机器中的8761端口,10.0.2.24中的8762端口,
访问10.0.2.24:8762
由上图可以看出2个实例都已经相互注册了,形成了一个2个服务的小集群。
4.接下来我们注册一个客户端服务到其中,沿用之前的项目demo-springboot
5.更改demo-springboot中的相应配置
#端口

server.port=8889



#实例名

spring.application.name=demo-springboot

#注册中心

eureka.server.host1=10.0.2.23

eureka.server.host2=10.0.2.24

eureka.server.port1=8761

eureka.server.port2=8762

eureka.client.service-url.defaultZone=http://${eureka.server.host1}:${eureka.server.port1}/eureka/,http://${eureka.server.host2}:${eureka.server.port2}/eureka/

#feign read timeout(10s)

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000

#feign read timout disable

#hystrix.command.default.execution.timeout.enabled=false

#开启eureka client健康检查

eureka.client.healthcheck=true

# 续约到期时间(默认90秒)

eureka.instance.lease-expiration-duration-in-seconds=30

# 续约更新时间间隔(默认30秒)

eureka.instance.lease-renewal-interval-in-seconds=10

将demo-springboot向2个实例同时注册(只向其中一个实例注册也是可以的,会自动发现)
启动demo-springboot查看效果
ok,至此我们的服务注册与发现集群就已经搭建成功了!

Author:

发表评论

电子邮件地址不会被公开。 必填项已用*标注