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: 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: 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: 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/,另外一种做法为,只将服务消费者注册到注册中心集群的其中一台机器上,两种做法均可。从可靠性角度说,第一种做法好些,提高了系统调用的可靠性。

【转】Eureka集群的更多相关文章

  1. 微服务架构:Eureka集群搭建

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 服务注册.发现是微服务架构的关键原理之一,由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就必 ...

  2. 基于dns搭建eureka集群

    eureka集群方案: 1.通常我们部署的eureka节点多于两个,根据实际需求,只需要将相邻节点进行相互注册(eureka节点形成环状),就达到了高可用性集群,任何一个eureka节点挂掉不会受到影 ...

  3. eureka集群基于DNS配置方式

    https://www.cnblogs.com/relinson/p/eureka_ha_use_dns.html   最近在研究spring cloud eureka集群配置的时候碰到问题:多台eu ...

  4. eureka集群的两种配置方式:配置文件方式与DNS方式

    eureka client获取serviceUrls(eureka server地址)列表的过程: 1. 根据use-dns-for-fetching-service-urls属性判断是从dns还是从 ...

  5. SpringCloud之Eureka集群

    前面我们介绍了SpringCloud注册中心Eureka,但是存在一个单点故障的问题,一个注册中心远远不能满足实际的生产环境,现在我们介绍一下如何搭建一个Eureka集群. 一:集群环境搭建 我们先建 ...

  6. eureka集群高可用配置

    譬如eureka.client.register-with-eureka和fetch-registry是否要配置,配不配区别在哪里:eureka的客户端添加service-url时,是不是需要把所有的 ...

  7. Eureka集群试验的一点总结

    先简单描述一下试验: 试验在一台机器上进行,假设有host文件中配置了以下内容 127.0.0.1 left 127.0.0.1 center 127.0.0.1 right 试验中搭建三个注册中心实 ...

  8. 【spring cloud】spring cloud中启动eureka集群时候,发生端口已经绑定的报错The Tomcat connector configured to listen on port 8000 failed to start. The port may already be in use or the connector may be misconfigured.

    在分别设置 进行微服务eureka集群启动时候,执行命令行启动jar包时候,报错前面一个端口8000已经被使用,而我这里启动的配置文件中端口号是8001,怎么会导致端口冲突呢?? 但是报错我的端口冲突 ...

  9. eureka集群高可用配置,亲测成功配置(转)

    转自大神的文章:https://blog.csdn.net/tianyaleixiaowu/article/details/78184793 网上讲这个东西的很多,抄来抄去的,大部分类似,多数没讲明白 ...

  10. Eureka集群搭建

    服务注册.发现是微服务架构的关键原理之一,由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就必然引入一个服务注册发现的问题,也就是说服务提供方要注册报告服务 ...

随机推荐

  1. python jdbc连接 oracle 数据库

    准备写一个代码生成的小工具自己用,第一步,连接数据库 import jaydebeapi url = 'jdbc:oracle:thin:@192.168.0.13:1521:JGD' user = ...

  2. 关于STM32中printf函数的重定向问题

    printf函数一般是打印到终端的,stm32芯片调试中经常需要用到串口来打印调试信息,那能不能用串口实现类似windows的Console中的printf呢? 答案是肯定的,那就是printf函数的 ...

  3. 01-jar包操作---idea打jar包

    文章:idea打包java可执行jar包 maven项目的话,使用maven命令,直接build就可以打jar包.

  4. plsql之导入数据乱码

     问题现象: 首先是使用了plsql 8.0版本客户端导入 ANSI as UTF-8 的字符集 格式sql 文件进行数据的导入, 然后检查了所有的系统环境的字符集和plsql 的字符集 都OK 的但 ...

  5. @InitBinder的作用

    由@InitBinder表示的方法,可以对WebDataBinder对象进行初始化.WebDataBinder是DataBinder的子类,用于完成由表单到JavaBean属性的绑定. @InitBi ...

  6. string::find_last_not_of

    #include <iostream>#include <string> using namespace std;int main(){ string s1("abc ...

  7. Spring相关概念

    DIP: Dependency Inversion Principle.翻译过来是依赖反转原则,也叫依赖倒置原则. 依赖倒置原则是设计模式几个重要原则之一.具体定义就是,底层模块依赖高层模块定义的接口 ...

  8. 重写 equals() 和 hashcode()

    重写equals() @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || ...

  9. HDU - 6253 Knightmare (打表+拉格朗日插值)

    题目链接 题意:一个马在无限大的棋盘中跳,问跳n步能跳到多少个不同的格子. 首先写个打表程序打一下n比较小的时候的表: #include<bits/stdc++.h> using name ...

  10. java多线程之生产者消费者模型

    public class ThreadCommunication{ public static void main(String[] args) { Queue q = new Queue();//创 ...