单台Spring Cloud Eureka升级到三台Eureka高可用集群

概述

由于前段时间,公司业务发展快,接了太多的业务需求了,没有时间把Eureka搞成高可用的,先用一台Eureka应付。当时由于流量还不大,不会出现问题。但是最近一个月,流量逐渐增大,老板担心万一单台Eureka挂了,服务会用不了。让我赶紧升级成3台Eureka,并两两注册,做到高可用。下面就把升级的过程说一下。

未升级前

单台Eureka上,只有购物车这个服务提供方,共两台。

升级步骤

为了描述的方便,线上已经存在的Eureka称之为peer1,新增的两台Eureka分别叫peer2peer3

第一步

peer2peer3作为客户端注册到peer1上,根据Eureka的原理,peer1上的注册信息会同步到peer2peer3上。但是由于购物车服务只会给peer1发送心跳,而不会给peer2peer3发送心跳信息,如果我们把Eureka的自我保护模式关闭掉的话,刚刚同步到peer2peer3上的购物车实例信息会很快被摘除掉的。

第二步

如第一步所提到的,peer2peer3上的购物车实例会很快被摘除掉,因此我们还需要把peer1也作为客户端注册到peer2和peer3上。这样,由于购物车服务会给peer1发送心跳,因此peer1是会保存购物车服务的实例信息的,根据Eureka的同步原理,这份实例信息会同步到peer2peer3上,并自动维护这份信息。到此,注册中心的升级便完成了。最终效果如下:

第三步

重新部署购物车服务,将购物车服务的注册中心地址,指向高可用的注册中心。

第四步

重新部署Eureka Client,将其注册中心的地址指向高可用的注册中心。
我是按照上面的方式升级的,没发现问题。有更好办法的,欢迎在评论中留言。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • zookeeper监听器原理的详解

    1)监听原理详解: 1)首先要有一个main()线程 2)在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener). 3)通过connect线程将注册的监听事件发送给Zookeeper. 4)在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中. 5)Zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程. 6)listener线程内部调用了process()方法. 2)常

  • Zookeeper和Eureka哪个更好?

    Zookeeper和Eureka哪个更好? 1.CAP理论 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求 C:数据一致性:保证所有数据都要同步 A:可用性:要保证任何时候请求数据都能够正常响应 P:分区容错性:当网络通信发生故障时,集群仍然可用,不会因为某个节点挂了或者存在问题,而影响整个系统的正常运作 对于分布式系统来说,出现网络分区是不可避免的,因此分区容错性是必须要具备的,也就是说,CAP三者,P是必须的 2.Zookeeper保证CP原则 当向注册中心查询服务列

  • 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

  • 细说Springcloud eureka的几种主动下线服务的方式

    本文会介绍几种eureka 注册中心服务下线的方式 补充:在启动eureka服务的时候发现控制台有以下的输出 由此猜想可以通过改接口下线服务, 于是尝试了一下 果然能从注册中心中移除该实例 1. 直接停掉服务. 默认情况下,如果Eureka Server在90秒没有收到Eureka客户的续约,它会将实例从其注册表中删除.但这种做法的不好之处在于, 客户端已经停止了运行,但仍然在注册中心的列表中. 虽然通过一定的负载均衡策略或使用熔断器可以让服务正常进行,但有没有方法让注册中心马上知道服务已经下线

  • Spring Cloud Eureka 服务上下线监控的实现

    之前我们有介绍通过Spring Boot Admin来检测服务的上下线,然后进行通知功能. https://www.jb51.net/article/130943.htm 今天为大家介绍另外一种实现的方式,在Eureka服务中进行检测通知,Eureka中提供了事件监听的方式来支持扩展. EurekaInstanceCanceledEvent 服务下线事件 EurekaInstanceRegisteredEvent 服务注册事件 EurekaInstanceRenewedEvent 服务续约事件

  • zookeeper概述图文详解

    1.1 概述 分布式系统:分布式系统指由很多台计算机组成的一个整体!这个整体一致对外,并且处理同一请求!系统对内透明,对外不透明!内部的每台计算机,都可以相互通信,例如使用RPC/REST或者是WebService!客户端向一个分布式系统发送的一次请求到接受到响应,有可能会经历多台计算机! Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目,多用作为集群提供服务的中间件! Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责

  • 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

  • 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,读取本地文

  • 从dubbo zookeeper注册地址提取出zookeeper地址的方法

    用途 项目中使用了 dubbo,注册中心使用的 zookeeper,使用 zookeeper 实现了一个简单的分布式锁(依赖 curator),因为配置文件存在 dubbo.registry 配置,为了直接使用这个地址来创建分布式锁,写了一个简单的方法来提取 zookeeper 地址. 效果 dubbo.registry 有多种配置方式,支持所有情况,下面是常见的例子和提取结果: zookeeper://localhost:2181 zookeeper://localhost:2181?clie

  • zookeeper节点类型详解

    1)Znode有两种类型: 短暂(ephemeral):客户端和服务器端断开连接后,创建的节点自己删除 持久(persistent):客户端和服务器端断开连接后,创建的节点不删除 2)Znode有四种形式的目录节点(默认是persistent ) (1)持久化目录节点(PERSISTENT) 客户端与zookeeper断开连接后,该节点依旧存在 (2)持久化顺序编号目录节点(PERSISTENT_SEQUENTIAL) 客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper

随机推荐