单台Spring Cloud Eureka升级到三台Eureka高可用集群
概述
由于前段时间,公司业务发展快,接了太多的业务需求了,没有时间把Eureka搞成高可用的,先用一台Eureka应付。当时由于流量还不大,不会出现问题。但是最近一个月,流量逐渐增大,老板担心万一单台Eureka挂了,服务会用不了。让我赶紧升级成3台Eureka,并两两注册,做到高可用。下面就把升级的过程说一下。
未升级前
单台Eureka
上,只有购物车这个服务提供方,共两台。
升级步骤
为了描述的方便,线上已经存在的Eureka
称之为peer1
,新增的两台Eureka
分别叫peer2
和peer3
。
第一步
将peer2
和peer3
作为客户端注册到peer1
上,根据Eureka
的原理,peer1
上的注册信息会同步到peer2
和peer3
上。但是由于购物车服务只会给peer1
发送心跳,而不会给peer2
和peer3
发送心跳信息,如果我们把Eureka
的自我保护模式关闭掉的话,刚刚同步到peer2
和peer3
上的购物车实例信息会很快被摘除掉的。
第二步
如第一步所提到的,peer2
和peer3
上的购物车实例会很快被摘除掉,因此我们还需要把peer1
也作为客户端注册到peer2和peer3
上。这样,由于购物车服务会给peer1
发送心跳,因此peer1
是会保存购物车服务的实例信息的,根据Eureka
的同步原理,这份实例信息会同步到peer2
和peer3
上,并自动维护这份信息。到此,注册中心的升级便完成了。最终效果如下:
第三步
重新部署购物车服务,将购物车服务的注册中心地址,指向高可用的注册中心。
第四步
重新部署Eureka Client
,将其注册中心的地址指向高可用的注册中心。
我是按照上面的方式升级的,没发现问题。有更好办法的,欢迎在评论中留言。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
JavaTCP上传文本文件代码
基于聊天客户端的基础上的文件(TXT文件)传输 客户端代码: public class UploadClient { public static void main(String[] args) throws UnknownHostException, IOException { // TODO Auto-generated method stub //1,创建socket客户端对象 Socket s = new Socket("localhost",10005); //2,读取本地文
-
zookeeper监听器原理的详解
1)监听原理详解: 1)首先要有一个main()线程 2)在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener). 3)通过connect线程将注册的监听事件发送给Zookeeper. 4)在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中. 5)Zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程. 6)listener线程内部调用了process()方法. 2)常
-
Java五子棋AI实现代码
思路: ①五子棋界面的实现 ②交互下棋的实现 ③重绘 ④AI,实现人机对战 五子棋和简单AI的实现: 首先将五子棋的界面写出来. 首先我们写一个接口类,定义好棋盘的数据(目的是方便修改). public interface Config { public static final int X0=50;//左上角起点X值 public static final int Y0=50;//左上角起点Y值 public static final int ROWS=15;//横向线数 public sta
-
SpringCloud Eureka实现服务注册与发现
前言 Eureka是一种基于REST(具像状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移.本文记录一个简单的服务注册与发现实例. GitHub地址:https://github.com/Netflix/eureka 官网文档:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.1.0.RC2/single/spring-cloud-netflix.html Eureka-Ser
-
Zookeeper和Eureka哪个更好?
Zookeeper和Eureka哪个更好? 1.CAP理论 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求 C:数据一致性:保证所有数据都要同步 A:可用性:要保证任何时候请求数据都能够正常响应 P:分区容错性:当网络通信发生故障时,集群仍然可用,不会因为某个节点挂了或者存在问题,而影响整个系统的正常运作 对于分布式系统来说,出现网络分区是不可避免的,因此分区容错性是必须要具备的,也就是说,CAP三者,P是必须的 2.Zookeeper保证CP原则 当向注册中心查询服务列
-
Spring Cloud Eureka 服务上下线监控的实现
之前我们有介绍通过Spring Boot Admin来检测服务的上下线,然后进行通知功能. https://www.jb51.net/article/130943.htm 今天为大家介绍另外一种实现的方式,在Eureka服务中进行检测通知,Eureka中提供了事件监听的方式来支持扩展. EurekaInstanceCanceledEvent 服务下线事件 EurekaInstanceRegisteredEvent 服务注册事件 EurekaInstanceRenewedEvent 服务续约事件
-
从dubbo zookeeper注册地址提取出zookeeper地址的方法
用途 项目中使用了 dubbo,注册中心使用的 zookeeper,使用 zookeeper 实现了一个简单的分布式锁(依赖 curator),因为配置文件存在 dubbo.registry 配置,为了直接使用这个地址来创建分布式锁,写了一个简单的方法来提取 zookeeper 地址. 效果 dubbo.registry 有多种配置方式,支持所有情况,下面是常见的例子和提取结果: zookeeper://localhost:2181 zookeeper://localhost:2181?clie
-
zookeeper概述图文详解
1.1 概述 分布式系统:分布式系统指由很多台计算机组成的一个整体!这个整体一致对外,并且处理同一请求!系统对内透明,对外不透明!内部的每台计算机,都可以相互通信,例如使用RPC/REST或者是WebService!客户端向一个分布式系统发送的一次请求到接受到响应,有可能会经历多台计算机! Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目,多用作为集群提供服务的中间件! Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责
-
zookeeper节点类型详解
1)Znode有两种类型: 短暂(ephemeral):客户端和服务器端断开连接后,创建的节点自己删除 持久(persistent):客户端和服务器端断开连接后,创建的节点不删除 2)Znode有四种形式的目录节点(默认是persistent ) (1)持久化目录节点(PERSISTENT) 客户端与zookeeper断开连接后,该节点依旧存在 (2)持久化顺序编号目录节点(PERSISTENT_SEQUENTIAL) 客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper
-
细说Springcloud eureka的几种主动下线服务的方式
本文会介绍几种eureka 注册中心服务下线的方式 补充:在启动eureka服务的时候发现控制台有以下的输出 由此猜想可以通过改接口下线服务, 于是尝试了一下 果然能从注册中心中移除该实例 1. 直接停掉服务. 默认情况下,如果Eureka Server在90秒没有收到Eureka客户的续约,它会将实例从其注册表中删除.但这种做法的不好之处在于, 客户端已经停止了运行,但仍然在注册中心的列表中. 虽然通过一定的负载均衡策略或使用熔断器可以让服务正常进行,但有没有方法让注册中心马上知道服务已经下线
随机推荐
- javascript学习之闭包分析
- Java设计模式之备忘录模式_动力节点Java学院
- ASP.NET 跨页面传值方法
- ASP.NET Table 表格控件的使用方法
- JavaScript闭包和范围实例详解
- php字符串替换函数substr_replace()用法实例
- jsp登录会话的简单实现
- Android编程实现XML解析与保存的三种方法详解
- Android实现动态高斯模糊效果
- 用C/C++来实现 Node.js 的模块(一)
- 使用Jquery实现点击文字后变成文本框且可修改
- Centos安装samba文件服务器方法
- 浅谈SQL Server交叉联接 内部联接
- jquery 关于event.target使用的几点说明介绍
- mybatis generator 使用方法教程(生成带注释的实体类)
- Android手势密码实现实例代码
- quartz实现定时功能实例详解(servlet定时器配置方法)
- Android实现短信验证码自动填写功能
- asp.net(c#) RSS功能实现代码
- Android中系统默认输入法设置的方法(输入法的显示和隐藏)