项目中,如果微服务实例过多时,eureka server会承担较高的负载,如果一旦eureka server宕机,后果不堪设想。基于此,需要对eureka server进行集群配置,以降低风险,持续运营。

我们这里的改造,基于上一篇博文的feign的项目工程。

拷贝一份服务注册中心工程,将其命名为feign-servicecenter2

eureka server集群搭建

之前feign-servicecenter的端口号定义为5430,这里先定义feign-servicecenter2的端口号为5429

修改servicecenter的配置文件如下

sping:
  profiles: peer1
server:
  port: 5430 #服务注册中心端口号
eureka:
  instance:
    hostname: peer1
  client:
    registerWithEureka: false #是否向服务注册中心注册自己
    fetchRegistry: false #是否检索服务
    serviceUrl: #服务注册中心的配置内容,指定服务注册中心位置
      defaultZone: http://peer2:5429/eureka/

和servicecenter2的配置文件如下

sping:
  profiles: peer2
server:
  port: 5429 #服务注册中心端口号
eureka:
  instance:
    hostname: peer2
  client:
    registerWithEureka: false #是否向服务注册中心注册自己
    fetchRegistry: false #是否检索服务
    serviceUrl: #服务注册中心的配置内容,指定服务注册中心位置
      defaultZone: http://peer1:5430/eureka/

上面配置中,定义了peer1 和 peer2,分别代表服务器的hostname。这里做测试,在同一台机子,所以使用host别名来替代。实际开发中,可以是具体的服务器IP地址,定义各自端口号是5430和5429。

给host定义别名,需要修改本地的host文件,做测试的是win10 64位操作系统,看下win10操作系统的host别名修改方式。

进入Windows系统,C:\Windows\System32\drivers\etc,hosts文件中增加

127.0.0.1 peer1
127.0.0.1 peer2

服务注册中心的修改到此结束。

在不同的机子上做server集群,eureka客户端是不用做修改的。这里是同一台机子,需要对配置文件做略微的修改,以方便看出集群效果。上面看到,之前有两个服务提供者工程和一个服务消费者工程,这里我们取一个服务提供者工程做示范,其它两个工程同样的修改方式。

打开provider工程的配置文件

将其服务注册地址修改为

spring.application.name=eureka-client
eureka.client.service-url.defaultZone=http://peer1:5430/eureka/
server.port=5433

 

依次启动servicecenter,servicecenter2,provider,provider2和consumer 5个工程

浏览器输入 peer1:5430 可以看到

eureka server集群搭建

DS Replicas 部分,出现了一个peer2,表示其为peer1的集群小伙伴

打开peer2的访问地址 http://peer2:5429/,可以同样看到

eureka server集群搭建

此时,我们访问下 http://localhost:5433/hello ,是可以正常访问的

停掉servicecenter服务,注册中心仅留servicecenter2 ,服务依然可以正常访问,表示注册中心正常工作。

eureka server集群搭建

上面是两个服务注册中心,如果三个或更多呢,用逗号隔开就可以了,以此类题

defaultZone: http://peer2:5429/eureka/,http://peer3:5428/eureka

 

上面就是eureka server集群的一点知识,如果有整理不到位或不严谨之处,欢迎批评斧正。谢谢。

 

 

 

相关文章: