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 运 ...
随机推荐
- MVC自定义编辑视图,DateTime类型属性显示jQuery ui的datapicker
实现的效果为:在编辑视图中,对DateTime类型的属性,显示jQuery UI的datepicker.效果如下: Student.cs public class Student { ...
- Canvas控件最后一蛋——CanvasGroup
Canvas Group可以用来控制一组不需要个别控制的UI元素的某些方面,CanvasGroup的属性会影响他所有children的GameObject 其中有四个选项: -Alpha:这个选项很多 ...
- UITableViewCell状态切换效果
UITableViewCell状态切换效果 效果图 源码 https://github.com/YouXianMing/Animations // // TableViewTapAnimationCo ...
- bat薪酬
三大互联网巨头公司,百度腾讯跟阿里如何划分级别?薪资待遇又有多少?除非身居其位,否则很难探知,但是等你到那个位置知道了,却又不能说,至少不能在公 开场合谈论.接下来就为大家揭秘,百度.阿里与腾讯内部的 ...
- 500 OOPS: vsftpd: cannot locate user specified in 'chown_username':whoever
错误:500 OOPS: vsftpd: cannot locate user specified in 'chown_username':whoever解决方案:在vsftpd.conf中修改如下两 ...
- 【STL学习】堆相关算法详解与C++编程实现(Heap)
转自:https://blog.csdn.net/xiajun07061225/article/details/8553808 堆简介 堆并不是STL的组件,但是经常充当着底层实现结构.比如优先级 ...
- Winform中用了皮肤控件之后,报错:容量超出了最大容量 参数名:capacity
解决方案: 设置 skin.SkinDialogs = false;
- App优化 StrictMode 严格模式
StrictMode简介 StrictMode最常用来捕捉应用程序的主线程,它将报告与线程及虚拟机相关的策略违例.一旦检测到策略违例policy violation,你将获得警告,其包含了一个栈tra ...
- 火速提升Android仿真器的运行速度 ——仿真器Genymotion
一.问题概述 Android开发中会使用仿真器测试应用,但不管你使用Eclispe ADT还是Android Studio仿真器都是基于arm架构的,运行起来都很慢,光启动就要花费很多时间,都不知道它 ...
- SQL Server 视图索引
在视图上创建索引的另一个好处是:查询优化器开始在查询中使用视图索引,而不是直接在 FROM 子句中命令视图.这样一来,可从索引视图检索数据而无需重新编码,由此带来的高效率也使现有查询获益.在视图上创建 ...