先简单描述一下试验:

试验在一台机器上进行,假设有host文件中配置了以下内容

127.0.0.1 left
127.0.0.1 center
127.0.0.1 right

试验中搭建三个注册中心实例分别命名为left(1111端口)、center(1110端口)、right(1112端口),构成集群,他们的 spring.application.name均为eureka-server,但是端口不同。

为了方便说明,再定义个名词:“注册到”

假如本文提及A注册到了B,那就是在说服务A的eureka.client.service-url.defaultZone里写上了注册中心B的地址。

试验也证明了一旦某个服务A注册到了某个注册中心B,那么A会把自己的相关信息报给B。

试验得到的结论:

1、任意两个节点A和B想要构成真正的集群,必须互相注册对方的主机名(或者ip)地址,即A注册到了B,且B也同时注册到了A。

2、使用ip注册会在eureka管理页面上显示 unavailable-replicas,但这并不妨碍使用,属于误报

3、如果left注册到了center,而center 没有注册到left,那么注册到left的服务,会同步到center上,而注册到center的服务不会同步到left上。

4、想在eureka的管理页面上不显示 unavailable-replicas,则注册中心的地址必须使用主机名而非ip地址,即hosts文件中配置的left、center、right之类。

5、服务的信息的同步不会链式传递,只能同步一个节点。即:如果left注册到了center,center注册到了right,那么如果某个服务A只注册到了left上,left会同步A服务的信息给center,但是center不会同步给right

6、一个服务无法同时注册到多个未做集群的注册中心上的

7、如果【eureka.client.service-url.defaultZone】中的地址直接用的IP,那么一定不要配【eureka.instance.prefer-ip-address=true】,不然你的Eureka集群将无法正常工作。

8、第七条主要时因为在多网卡环境中eureka无法正确的选择网络环境(网卡),在使用docker之后才发现。

#在docker中运行的时候,为了控制网络环境,除了使用host外还需要指定网络,可以通过忽略网卡或者选择网段的方式进行
#忽略网卡spring.cloud.inetutils.ignored-interfaces[0]=eth0 # 正则表达式
#选择网络spring.cloud.inetutils.preferredNetworks[0]=^192\.168

测试使用的版本:Dalston.SR1

Eureka集群试验的一点总结的更多相关文章

  1. SpringCloud——eureka集群

    目的: 第一种普通方式 第二种方式骚操作 Eureka自我保护机制 Eureka集群搭建 说的通俗易懂一点就是,同一个项目部署在多个服务器上. 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 今 ...

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

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

  3. 基于dns搭建eureka集群

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

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

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

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

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

  6. SpringCloud之Eureka集群

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

  7. eureka集群高可用配置

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

  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. tomcat+nginx+redis集群试验

    Nginx负载平衡 + Tomcat + 会话存储Redis配置要点   使用Nginx作为Tomcat的负载平衡器,Tomcat的会话Session数据存储在Redis,能够实现0当机的7x24 运 ...

随机推荐

  1. wpf z

    Finding an ancestor of a WPF dependency object This is a simple snippet which helps you to find a sp ...

  2. 《CWNA官方学习指南(第3版):认证无线网络管理员PW0-105》

    <CWNA官方学习指南(第3版):认证无线网络管理员PW0-105> 基本信息 原书名:CWNA: Certified Wireless Network Administrator Off ...

  3. strncpy实现

    #include<stdio.h> char *my_strncpy(char *dest,char *src,int n) { int i; ;i<n && src ...

  4. Vue Cli安装以及使用

      因为公司项目要用vue框架,所以会用vue-cli来新建项目.用过vue的都知道,要全局安装vue以及脚手架vue-cli,然后执行vue init webpack projectname来新建v ...

  5. 遇到Elements in iteration expect to have 'v-bind:key' directives.' 这个错误

    解决方式一:更改VS Code编辑器的vetur配置 错误提示: [vue-language-server] Elements in iteration expect to have 'v-bind: ...

  6. oracle和mysql功能相同的函数

    wm_concat ---->mysql 的group_concat decode (两条件的)----->mysql 的 if decode (3个及以上条件的)---------> ...

  7. hdu3117之矩阵快速幂

    Fibonacci Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  8. 手写一个自己的LocalCache - 基于LinkedHashMap实现LRU

    功能目标      实现一个全局范围的LocalCache,各个业务点使用自己的Namespace对LocalCache进行逻辑分区.所以在LocalCache中进行读写採用的key为(namespa ...

  9. 【MySQL】MySQL-主从复制-集群方案-数据一致性问题解决方案 && MySQL备份的各种姿势

    1.写性能如何保证:分库分表 2.读性能如何保证:主从结构,实时备份 3.一致性问题怎么解决: 3.1.微博案例:Redis缓存,热数据查询走Redis,主从的延迟通过Redis消除 3.2.支付宝的 ...

  10. 以太网帧、IP报文格式

    这几天完成一个对比以太网帧的程序(c语言),老师给了以太网帧头部和IP报文头部的结构体,跟实际抓取到的数据包的格式是相同的. 以太网帧头部的数据结构: typedef struct { unsigne ...