前言

之前一篇文章文章《服务注册与发现---eureka》介绍了单点EurekaServer。但是实际环境中,这种单点的的模式可能会有很多隐形的问题。比如EurekaServer发生宕机,或者某些意外情况发生,很可能影响其他服务之间的调用,严重影响到整个系统的可用性,所以,一般会部署一个高可用的EurekaServer集群。

本文简单介绍EurekaServer高可用简单搭建。

配置本地环境

由于本地环境是单台电脑来配置高可用,所以需要修改一下电脑的host文件,本文简单说一下mac修改host文件,其他系统电脑可以自行百度一下,都很简单。

1.进入/private/etc文件夹内

2.打开host文件

3.文件内加入以下两行

127.0.0.1	server1
127.0.0.1 server2

本机完整host文件如下:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 server1
127.0.0.1 server2

新建项目

配置好了host文件之后,新建一个项目,与之前新建eurekaserver完全一致,不过配置文件进行了一下简单的修改(只有配置文件进行了修改),先看一下单机模式下的配置:

server.port=8761

eureka.instance.hostname=localhost
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/ ##禁止自己向自己注册
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

从配置上可以看到,上面最后两行配置是让注册中心不注册自己,而其实eurekaserver就是将自己也当成服务,向其他注册中心注册自己。

新建项目springcloud_eureka_server1(8761),除了配置其余没有任何不同,这里就不一一展示了,配置文件代码如下:

server.port=8761

eureka.instance.hostname=server1
eureka.client.service-url.defaultZone=http://server2:8762/eureka/ spring.application.name=server1

新建项目springcloud_eureka_server2(8762),配置文件代码如下:

server.port=8762

eureka.instance.hostname=server2
eureka.client.service-url.defaultZone=http://server1:8761/eureka/ spring.application.name=server2

以上代码不难理解,springcloud_eureka_server1(8761)将自己注册到server2的eureka上,springcloud_eureka_server2(8762)注册到server1的eureka上。

这时查看一下eureka管理页面,如下图:

观察页面可以看到server1含有了server2的节点,server2有了server1的节点。

应用注册到高可用EurekaServer上

修改之前项目springcloud_eureka_client(8761)配置文件如下:

##端口号
server.port=8763 spring.application.name=eureka_client eureka.client.service-url.defaultZone=http://server1:8761/eureka/,http://server2:8762/eureka/

查看一下eureka管理页面,如下:

此时就算断开server1,因为springcloud_eureka_client(8763)也像server2注册了,因此其他server2上的服务依然可以访问springcloud_eureka_client(8763),从而实现了EurekaServer的高可用。

其他测试

我们在做一下修改,springcloud_eureka_client(8763)项目配置文件中只配置一个eurekaserver,代码如下:

##端口号
server.port=8763 spring.application.name=eureka_client eureka.client.service-url.defaultZone=http://server1:8761/eureka/

eureka管理页面也是同样的展示了和配置两个服务一样的效果,因为多个eureka之间的数据会同步,但是建议在客户端像第一种方式那样配置。

源码下载 :大老杨码云

个人网站:https://www.dalaoyang.cn

关注作者公众号

EurekaServer高可用的更多相关文章

  1. Spring Cloud 之服务注册中心高可用

    服务注册中心高可用 服务注册中心 eureka-server 高可用实施 版本 Spring Boot 版本 # Spring Boot 版本: <parent> <groupId& ...

  2. 微服务配置内容《网上copy》=========》如何创建一个高可用的服务注册中心

    前言:首先要知道什么是一个高可用的服务注册中心,基于spring boot建成的服务注册中心是一个单节点的服务注册中心,这样一旦发生了故障,那么整个服务就会瘫痪,所以我们需要一个高可用的服务注册中心, ...

  3. (2-1)SpringCloue-Eureka实现高可用注册中心

    高可用注册中心 在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署.在eureka-server中的application.yml中我们还记得 ...

  4. 笔记:Spring Cloud Eureka 高可用注册中心

    在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka 高可用实际上就是将自己作为服务向其 ...

  5. Spring-Cloud(三)Eureka注册中心实现高可用

    前言: spring-cloud为基础的微服务架构,所有的微服务都需要注册到注册中心,如果这个注册中心阻塞或者崩了,那么整个系统都无法继续正常提供服务,所以,这里就需要对注册中心进行集群,换言之,高可 ...

  6. 高可用Eureka注册中心配置说明(双机部署)

    目  录 1. 高可用EureKa注册中心示意图 2. Eureka实例相互注册配置 3. 微服务注册到Eureka配置 4. 启动步骤及配置成功检查 5. 说明事项 1. 高可用EureKa注册中心 ...

  7. 使用Spring Cloud搭建高可用服务注册中心

    我们需要的,不仅仅是一个服务注册中心而已,而是一个高可用服务注册中心. 上篇博客[使用Spring Cloud搭建服务注册中心]中我们介绍了如何使用Spring Cloud搭建一个服务注册中心,但是搭 ...

  8. spring cloud(学习笔记)高可用注册中心(Eureka)的实现(一)

    最近在学习的时候,发现微服务架构中,假如只有一个注册中心,那这个注册中心挂了可怎么办,这样的系统,既不安全,稳定性也不好,网上和书上找了一会,发现这个spring cloud早就想到了,并帮我们解决了 ...

  9. SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端、Eureka 服务信息、Eureka 发现管理、Eureka 安全配置、Eureka-HA(高可用) 机制、Eureka 服务打包部署)

    1.概念:Eureka 服务发现框架 2.具体内容 对于服务发现框架可以简单的理解为服务的注册以及使用操作步骤,例如:在 ZooKeeper 组件,这个组件里面已经明确的描述了一个服务的注册以及发现操 ...

随机推荐

  1. Java 画一个5X5的方形矩阵

    效果图如下: 思路:创建一个窗口,使其居中于屏幕中央,使用drawRect(x, y, width, height)画正方形. import java.awt.Graphics; import jav ...

  2. 步步为营-104-Lambda语句

    1:Lambda的拼接 首先借助一个Lambda的帮助类 using System; using System.Collections.Generic; using System.Linq; usin ...

  3. html5页面调用手机打电话功能

    <head>里面加上:<meta name="format-detection" content="telephone=yes"/> 需 ...

  4. Tensorflow:DCGAN生成手写数字

    参考地址:https://blog.csdn.net/miracle_ma/article/details/78305991 使用DCGAN(deep convolutional GAN):深度卷积G ...

  5. 改变input type="file" 文字、样式等

    <div class="tac"> <input type="file" id="browsefile" class=&q ...

  6. Oracle数据重复,只取一条

    --方法一 select * from tb_supply where rowid=any(select max(rowid) from tb_supply group by phone_id) -- ...

  7. 个人笔记本安装多个jdk(jdk1.7,jdk1.8,jdk1.9,jdk10.0)出现的问题

    1.个人笔记本已经安装jdk1.7,jdk1.8,(之前没有在意这个问题).最近想学习jdk10.0,安装以后,环境变量变成了jdk10.0,就是cmd输入命令java -version,显示版本是j ...

  8. ynoi2018

    题解: 全分块是啥操作啊.. 而且都好难.. 1.未来日记 这个比较简单 对每个块开个线段树维护权值 $n\sqrt{n}logn$ 这个会炸空间 并不能做... 但还是说一下做法 首先考虑分块 然后 ...

  9. asp.net MVC5为WebAPI添加命名空间的支持

    前言 默认情况下,微软提供的MVC框架模板中,WebAPI路由是不支持Namespace参数的.这导致一些比较大型的项目,无法把WebApi分离到单独的类库中. 本文将提供解决该问题的方案. 微软官方 ...

  10. 配置文件——节点<machineKey>的作用,强随机生成

    <machineKey>这个节允许你设置用于加密数据和创建数字签名的服务器特定的密钥.ASP.NET自动使用它来保护表单验证Cookie,你也可以将它用于受保护的视图状态数据.同时,这个密 ...