【转】Eureka集群

Eureka作为SpringCloud的服务发现与注册中心,在整个的微服务体系中,处于核心位置。单一的eureka服务,显然不能满足高可用的实际生产环境,这就要求我们配置一个能够应对各种突发情况,具有较强容灾能力的eureka集群服务。

首先,参考eureka服务端7001的模块,分别创建eureka7002和eureka7003模块,另外还要做如下修改。还记得我们在7001中配置的eureka.instance.hostname为localhost,那么现在在集群的环境中,如果还是这样的话,就没法区分三个服务端,所以我们需要在hosts文件中添加映射,以及在对应模块中修改服务名。

127.0.0.1  eureka7001.com
127.0.0.1  eureka7002.com
127.0.0.1  eureka7003.com

 

eureka7001模块的application.yml

server:
  port: 7001

eureka:
  instance:
    hostname: eureka7001.com #eureka服务端的名称
  client:
    register-with-eureka: false #不在注册中心注册自己
    fetch-registry: false #表示自己就是注册中心,不需要检索服务,只需要维护服务实例
    service-url:
      defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

 

eureka7002模块的application.yml

server:
  port: 7002

eureka:
  instance:
    hostname: eureka7002.com #eureka服务端的名称
  client:
    register-with-eureka: false #不在注册中心注册自己
    fetch-registry: false #表示自己就是注册中心,不需要检索服务,只需要维护服务实例
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/

 

eureka7003模块的application.yml

server:
  port: 7003

eureka:
  instance:
    hostname: eureka7003.com #eureka服务端的名称
  client:
    register-with-eureka: false #不在注册中心注册自己
    fetch-registry: false #表示自己就是注册中心,不需要检索服务,只需要维护服务实例
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

 

另外需要注意,我们之前在服务提供者8001中的配置是,将服务注册到服务端7001上,那么现在是集群环境,有三个服务端,所以需要将提供的服务注册到三个EurekaServer上,所以需要修改服务提供者8001的注册地址。

 

eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

 

以上eureka的集群配置基本完成,然后我们测试一下,启动三个EurekaServer,并将服务提供者8001启动,访问eureka7001.com:7001。
 
 

我们看到,服务提供者已经将服务注册到注册中心了,而且我们访问的是7001,上面挂载着另外两个7002和7003。这里我相信大家都明白了,如果我们访问eureka7002.com:7002,同样的服务已经注册进来,而且挂载着7001和7003,那么访问eureka7003.com:7003亦是如此。



作者:蔡先森_caiyq
链接:https://www.jianshu.com/p/c9330b450050
来源:简书

本人补充:

在服务消费者注册到注册中心的时候,有两种做法,一种是:全部注册到注册中心集群的每一台机器上,示例做法如下:defaultZone: http://admin:123456@localhost:8888/eureka/,http://admin:123456@localhost:8889/eureka/,另外一种做法为,只将服务消费者注册到注册中心集群的其中一台机器上,两种做法均可。从可靠性角度说,第一种做法好些,提高了系统调用的可靠性。

posted @ 2019-08-21 20:12  Shapley  阅读(162)  评论(0编辑  收藏  举报