eureka---各个server的地址配置不全导致服务找不到

embedded/2024/10/20 1:49:51/

1、eureka集群理论:

搭建eureka集群这个都会(网上一堆demo) ,比如有3台server,分别为server1、server2、server3;

理论上server1需要配置 server2、server3的地址;

server2需要配置 server1、server3的地址;

server3需要配置 server1、server2的地址;

eureka集群高可用的原理是各个server互相通信,向其他server发送本server收到的客户端的心跳,每个server端都保存全部的client信息,即所谓的peer to peer。这样不论client不论向那台server请求都能找到对应的服务,即使一台server挂了也没关系。从而保存eureka集群的高可用,

2、下面假设一种场景:

server1需要配置 server2地址;

server2需要配置 server1的地址;

server3需要配置 server1、server2的地址;

会出现什么情况呢?

答案:server1和server2上客户端信息都是全量的;server3上客户端信息不停地在变化;

server3上客户端信息不停地在变化:

原因是server3收到客户端的注册信息后,30s(eureka默认值,可修改)内若客户端是向server1或server2发送心跳,没有向server3发送心跳,server1和server2也没有配置server3的地址肯定也不会同步收到的心跳信息给server3,那么这时候server3会认为服务下线了,即把客户端从注册中心给移除掉。

server1和server2上客户端信息都是全量的:

因为server3配置了server1和server2的地址,它收到客户端的注册或心跳信息,都会同步给server1和server2的,所以server1和server2上客户端信息都是全量的。

2.1 问题:一旦按上面配置,会出现什么问题呢?

a客户端通过“服务名”去eureka注册中心找服务,请求打到server1或server2肯定能找到对应的服务地址信息,但是请求打到server3,则找不到地址信息直接报错,这时候ribbon不会去其他eureka服务重新找(ribbon找到多个地址信息后才会有负载策略)。

现象:a客户端有时候能寻址成功(2/3的概率),有时候寻址失败(1/3的概率)。

2.2 解决办法

2.2.1 eureka服务端地址配置全量的地址信息

如上:server1上配置server2、server3的地址;

           server2上配置server1、server3的地址;

           server3上配置server1、server2的地址;

2.2.2 ribbon源码修改,

增加一层负载均衡策略,当一台eureka服务端不可用或找不到服务的时候,可以自动去其他eureka服务端寻址。这样只要有一台eureka服务端上有全量的注册信息,也能被寻到地址信息。


http://www.ppmy.cn/embedded/8005.html

相关文章

Flink的安装、项目创建、任务打包和部署完整实现,任务实现使用JAVA语言

Flink资源下载地址 Flink安装包下载地址 一、本地模式安装Flink 1、在Linux服务上,创建flink文件夹 mkdir flink 2、上传文件并解压 tar -zxvf flink-1.14.6-bin-scala_2.11.tgz 解压完成后,如图: 3、启动Flink 进入到解压目录下&#x…

数据结构10:堆和堆排序

文章目录 树的概念及结构树的概念树的相关概念树的表示树在实际中的应用表示文件系统的目录树结构 二叉树概念及结构概念特殊的二叉树二叉树的性质二叉树的存储结构顺序存储链式存储 二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构 堆的实现堆的插入堆的删除堆的创建向…

控制maven 输出信息的语言

设置javac 输出 set JAVA_TOOL_OPTIONS-Duser.languageen JAVA_TOOL_OPTIONS-Duser.languageen 如果用java/java.exe来启动JVM,那么在命令行上使用 -Duser.countryUS 就可以把国家指定为美国。用javac/javac.exe来启动javac编译器则需要再多加个-J在前面&#xff0…

恒峰智慧科技-森林消防便捷泵:轻松应对火灾危机!

在广袤无垠的森林中,绿色是生命的象征,是自然的馈赠。然而,当火魔无情地吞噬这片生命的绿洲时,我们需要一种快速、高效、可靠的消防工具来守护这片绿色。此时,森林消防便捷泵应运而生,成为了守护森林安全的…

【Linux】小知识点温习---命令

许多常见命令会用,但是很少注意他们的区别;亦或在学习中使用较少,容易忘记,今天做一个回顾。 ls系列 -a:显示所有文件(包括隐藏文件) -l:将文件以竖列形式显示 -i:显示文件的inode编号 pwd 显…

【力扣 Hot100 | 第七天】4.22(移动零)

文章目录 1.移动零1.1题目1.2解法:双指针1.2.1双指针思路1.2.2代码实现 1.移动零 1.1题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数…

find和grep查找搜索命令常用的一些使用方式

目录 find和grep查找搜索命令常用的一些使用方式 一、find命令 二、grep命令 find和grep查找搜索命令常用的一些使用方式 一、find命令 我们知道在Windows系统中想要搜索查找文件,一般需要满足两个条件: 1、知道在哪些目录中查找 2、知道查找的内容&…

物联网智能互联创新开发平台

物联网智能互联创新开发平台在职业教育方面的发展前景广阔且充满潜力。随着物联网技术的不断发展和应用领域的扩大,对物联网专业人才的需求也在日益增长。因此,物联网智能互联创新开发平台在职业教育领域的应用将具有重要意义。 一、发展前景 1) 为职业…