Eureka集群试验的一点总结
先简单描述一下试验:
试验在一台机器上进行,假设有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集群试验的一点总结的更多相关文章
- SpringCloud——eureka集群
目的: 第一种普通方式 第二种方式骚操作 Eureka自我保护机制 Eureka集群搭建 说的通俗易懂一点就是,同一个项目部署在多个服务器上. 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 今 ...
- 微服务架构:Eureka集群搭建
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 服务注册.发现是微服务架构的关键原理之一,由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就必 ...
- 基于dns搭建eureka集群
eureka集群方案: 1.通常我们部署的eureka节点多于两个,根据实际需求,只需要将相邻节点进行相互注册(eureka节点形成环状),就达到了高可用性集群,任何一个eureka节点挂掉不会受到影 ...
- eureka集群基于DNS配置方式
https://www.cnblogs.com/relinson/p/eureka_ha_use_dns.html 最近在研究spring cloud eureka集群配置的时候碰到问题:多台eu ...
- eureka集群的两种配置方式:配置文件方式与DNS方式
eureka client获取serviceUrls(eureka server地址)列表的过程: 1. 根据use-dns-for-fetching-service-urls属性判断是从dns还是从 ...
- SpringCloud之Eureka集群
前面我们介绍了SpringCloud注册中心Eureka,但是存在一个单点故障的问题,一个注册中心远远不能满足实际的生产环境,现在我们介绍一下如何搭建一个Eureka集群. 一:集群环境搭建 我们先建 ...
- eureka集群高可用配置
譬如eureka.client.register-with-eureka和fetch-registry是否要配置,配不配区别在哪里:eureka的客户端添加service-url时,是不是需要把所有的 ...
- 【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,怎么会导致端口冲突呢?? 但是报错我的端口冲突 ...
- tomcat+nginx+redis集群试验
Nginx负载平衡 + Tomcat + 会话存储Redis配置要点 使用Nginx作为Tomcat的负载平衡器,Tomcat的会话Session数据存储在Redis,能够实现0当机的7x24 运 ...
随机推荐
- 平时常用的Visual Studio操作技巧,持续更新中……
移除未使用的命名空间--方法1:右键--"组织using"--"移除未使用的using"--方法2:Shift+F10--"O"-" ...
- superobject
GITHUB: https://github.com/hgourvest/superobject # SuperObject ## What is JSON ? - JSON (JavaScript ...
- #pragma mark 添加分割线 及 其它类似标记 - 转
#pragma marks Comments containing: MARK: TODO: FIXME: !!!: ???: 除了使用 #pragma mark -添加分割线之外, 以上几种标记均可 ...
- 使用 CoreTelephony 框架获取当前网络运营商
CoreTelephony 获取运营商信息,需通过 CoreTelephony.Framework 中的 CTTelephonyNetworkInfo 和 CTCarrier 对象获取,这些都在iOS ...
- tomcat配置301重定向
tomcat默认情况下不带www的域名是不会跳转到带www的域名的,而且也无法像apache那样通过配置.htaccess来实现.如果想要把不带“www'的域名重定向到带”www"域名下,又 ...
- 玩转rocketMQ
下载地址https://github.com/alibaba/RocketMQ 安装环境需要jdk,maven,git http://maven.apache.org/download.html
- Android之ListView和GridVIew加载图片
清除缓存:ImageLoader 对象 . clearCache(); 使用: ImageLoader loader = new ImageLoader(ApplicationContext cont ...
- C语言:自定义一个查找字串的功能函数,类似于<string.h>中的strstr()
//自定义一个字符串字串查找标准库函数strstr() #include<stdio.h> #include<string.h> char* myStrstr(char *st ...
- 我所遭遇过的游戏中间件---SpeedTree
我所遭遇过的游戏中间件---SpeedTree SpeedTree是一个专门用于渲染植被的中间件,并提供了一套完善的植物编辑工具.在它官方提供的DEMO中,你会看到高度逼真的树木和植物,在风的影响下树 ...
- [leetcode]Balanced Binary Tree @ Python
原题地址:http://oj.leetcode.com/problems/balanced-binary-tree/ 题意:判断一颗二叉树是否是平衡二叉树. 解题思路:在这道题里,平衡二叉树的定义是二 ...