高可用Eureka

  高可用我就不再过多解释了,Eureka Server的设计一开始就考虑了高可用的问题,在Eureka的服务治理设计中,所有的节点即是服务提供方也是消费方,注册中心也不例外,上一章中我已经将注册中心EUREKA-SERVER注册到注册中心,很直观,是否还记得单节点中我们设置过下面这样的配置信息,让注册中心注册自己。

eureka:
client:
registerWithEureka: true
fetchRegistry: true

EurekaServer的高可用实际就是把自己当做服务向注册中心注册自己,这就形成了一组互相注册的服务注册中心,以实现服务列表的同步,达到高可用,上代码:

这里我搭建两套EurekaServer,使用不同的端口,如下是注册中心的配置

仔细观察下面配置我新增加了一个节点,这里说明一下,eureka.client.serviceUrl.defaultZone这个配置是相互指定的,意思就是node1的IP指向node2,node2的IP指向node1,这样就会实现相互注册及高可用,我这里是本地启动两个,所以ip是一样的


#公共配置信息
server:
port: 9901 spring:
application:
name: eureka-server
profiles:
active: node1 eureka:
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
server:
enableSelfPreservation: true #关闭保护机制,以确保注册中心可以将不可用的实例剔除.(注意:自我保护模式是一种应对网络异常的安全保护措施,使用自我保护模式,可以让Eureka集群更加的健壮、稳定)
evictionIntervalTimerInMs: 5000 #eureka server清理无效节点的时间间隔,默认60000毫秒,即60秒
client:
registerWithEureka: true
fetchRegistry: true #用---分割不同的环境对应的配置信息(YML以"---"作为文档分割符,以"..."作为结束标志)
---
spring:
profiles: node1 eureka:
client:
serviceUrl:
defaultZone: http://10.200.108.50:9902/eureka/
---
spring:
profiles: node2 eureka:
client:
serviceUrl:
defaultZone: http://10.200.108.50:9901/eureka/ ···
 
#公共配置信息
server:
port: 9902 spring:
application:
name: eureka-server
profiles:
active: node2 eureka:
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
server:
enableSelfPreservation: true #关闭保护机制,以确保注册中心可以将不可用的实例剔除.(注意:自我保护模式是一种应对网络异常的安全保护措施,使用自我保护模式,可以让Eureka集群更加的健壮、稳定)
evictionIntervalTimerInMs: 5000 #eureka server清理无效节点的时间间隔,默认60000毫秒,即60秒
client:
registerWithEureka: true
fetchRegistry: true #用---分割不同的环境对应的配置信息(YML以"---"作为文档分割符,以"..."作为结束标志)
---
spring:
profiles: node1 eureka:
client:
serviceUrl:
defaultZone: http://10.200.108.50:9902/eureka/
---
spring:
profiles: node2 eureka:
client:
serviceUrl:
defaultZone: http://10.200.108.50:9901/eureka/ ···

两个注册中心启动后会访问第一个或第二个都会出现如下界面:

深入了解一下:

  在实际开发中,服务注册中心不单单只有2个节点,而是会有两个以上的节点存在。但从上面的例子当中,我们可以知道Eureka Server的同步遵循着一个非常简单的原则:只要可以连接集群中任意一台注册中心,就可以进行信息传播与同步。所以,如果存在多个节点,我们只需要将节点之间两两连接起来,形成通路,那么他们之间的所有服务都可以共享。

我们的服务只需要向集群中的任意一个注册中心中注册,即可被所有注册中心所共享,任意一个注册中心崩溃,都不会影响这个服务被调用。

这样就实现了注册中心集群的高可用。

微服务之SpringCloud实战(三):SpringCloud Eureka高可用的更多相关文章

  1. SpringCloud学习笔记(6)——Eureka高可用

    参考Spring Cloud官方文档第12章12.3.12.5.12.6小节 12.3 High Availability, Zones and Regions 默认情况下,每一个Eureka服务器同 ...

  2. (转)微服务_创建一个简单的Eureka注册中心

    原文地址:https://www.cnblogs.com/lplshermie/p/9105329.html 微服务和分布式已经成了一种极其普遍的技术,为了跟上时代的步伐,最近开始着手学习Spring ...

  3. springcloud 入门 10 (eureka高可用)

    eureka高可用: 说白了,就是加一个实例作为原实例的备份,然后一起对外提供服务.这样可以保证在一台机器宕机的时候,整个系统不会死掉.保证其继续对外服务. eureka的集群化: 服务注册中心Eur ...

  4. SpringCloud之Eureka高可用集群环境搭建

    注册中心集群 在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式. Eureka集群相当简单:相互注册 ...

  5. 字节跳动内部微服务架构-Docker实战学习笔记分享 真香

    前言 基于 Spring Cloud 的微服务设计和开发,已经越来越多地得到了更多企业的推广和应用,而 Spring Cloud 社区也在不断的迅速发展壮大之中,近几年时间,Spring Cloud ...

  6. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_03-Eureka注册中心-搭建Eureka高可用环境

    1.3.2.2 高可用环境搭建 Eureka Server 高可用环境需要部署两个Eureka server,它们互相向对方注册.如果在本机启动两个Eureka需要 注意两个Eureka Server ...

  7. 通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr

    目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr实现一个简单的基于.net的微服务电 ...

  8. 服务注册组件——Eureka高可用集群搭建

    服务注册组件--Eureka高可用集群搭建 什么是Eureka? 服务注册组件:将微服务注册到Eureka中. 为什么需要服务注册? 微服务开发重点在一个"微"字,大型应用拆分成微 ...

  9. spring cloud 服务注册中心eureka高可用集群搭建

    spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...

  10. Spring Cloud第三篇 | 搭建高可用Eureka注册中心

    ​ ​本文是Spring Cloud专栏的第三篇文章,了解前两篇文章内容有助于更好的理解后面文章: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring ...

随机推荐

  1. 上海GDG活动有感

    本周参加了场上海的GDG活动.本次活动的主办方 先介绍一下: GDG Shanghai 上海GDG(Google开发者社区,以前是GTUG, Google技术用户组) ,众所周知,Google的搜索引 ...

  2. bzoj 2566 calc 拉格朗日插值

    calc Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 377  Solved: 226[Submit][Status][Discuss] Descr ...

  3. mybatis的一些特殊符号标识(大于,小于,等于,不等于)

    特殊字符   替代符号(红色基本为常用的)    &            &      <            <      >            > ...

  4. JVM内存模型 三

    本文章节: 1.JMM简介 2.堆和栈 3.本机内存 4.防止内存泄漏   1.JMM简介 i.内存模型概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉 ...

  5. openstack中region、az、host aggregate、cell 概念

    1. region 更像是一个地理上的概念,每个region有自己独立的endpoint,regions之间完全隔离,但是多个regions之间共享同一个keystone和dashboard.(注:目 ...

  6. 地震(quake)

    地震 题目描述 一场地震毁了 Farmer John 的整个农场.他是个有恒心的人,决定重建农场.在重建了所有 n(1<=n<=400)块田野后,他意识到还得修路将它们连起来.完工后,任两 ...

  7. TensorFlow 官方文档中文版【转】

    转自:http://wiki.jikexueyuan.com/project/tensorflow-zh/ TensorFlow 官方文档中文版 你正在阅读的项目可能会比 Android 系统更加深远 ...

  8. 如何在Ubuntu 16.04安装的Git【转】

    转自:https://www.howtoing.com/how-to-install-git-on-ubuntu-16-04/ 介绍 现代软件开发中不可或缺的工具是某种版本控制系统. 版本控制系统允许 ...

  9. 图的遍历[DFS][BFS]

    #include<iostream> #include<iostream> #include<cstring> #include<queue> #inc ...

  10. MATLAB作图方法与技巧(一)

    下面从折线图.曲面图和图形说明与定制三个方面说明MATLAB作图的一些方法与技巧,注意,文中出现的单引号在MATLAB中实际运行的时候,需要改为MATLAB认可的单引号. 一. 作折线图 1.plot ...