EurekaServer高可用
前言
之前一篇文章文章《服务注册与发现---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之间的数据会同步,但是建议在客户端像第一种方式那样配置。
源码下载 :大老杨码云
关注作者公众号
EurekaServer高可用的更多相关文章
- Spring Cloud 之服务注册中心高可用
服务注册中心高可用 服务注册中心 eureka-server 高可用实施 版本 Spring Boot 版本 # Spring Boot 版本: <parent> <groupId& ...
- 微服务配置内容《网上copy》=========》如何创建一个高可用的服务注册中心
前言:首先要知道什么是一个高可用的服务注册中心,基于spring boot建成的服务注册中心是一个单节点的服务注册中心,这样一旦发生了故障,那么整个服务就会瘫痪,所以我们需要一个高可用的服务注册中心, ...
- (2-1)SpringCloue-Eureka实现高可用注册中心
高可用注册中心 在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署.在eureka-server中的application.yml中我们还记得 ...
- 笔记:Spring Cloud Eureka 高可用注册中心
在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka 高可用实际上就是将自己作为服务向其 ...
- Spring-Cloud(三)Eureka注册中心实现高可用
前言: spring-cloud为基础的微服务架构,所有的微服务都需要注册到注册中心,如果这个注册中心阻塞或者崩了,那么整个系统都无法继续正常提供服务,所以,这里就需要对注册中心进行集群,换言之,高可 ...
- 高可用Eureka注册中心配置说明(双机部署)
目 录 1. 高可用EureKa注册中心示意图 2. Eureka实例相互注册配置 3. 微服务注册到Eureka配置 4. 启动步骤及配置成功检查 5. 说明事项 1. 高可用EureKa注册中心 ...
- 使用Spring Cloud搭建高可用服务注册中心
我们需要的,不仅仅是一个服务注册中心而已,而是一个高可用服务注册中心. 上篇博客[使用Spring Cloud搭建服务注册中心]中我们介绍了如何使用Spring Cloud搭建一个服务注册中心,但是搭 ...
- spring cloud(学习笔记)高可用注册中心(Eureka)的实现(一)
最近在学习的时候,发现微服务架构中,假如只有一个注册中心,那这个注册中心挂了可怎么办,这样的系统,既不安全,稳定性也不好,网上和书上找了一会,发现这个spring cloud早就想到了,并帮我们解决了 ...
- SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端、Eureka 服务信息、Eureka 发现管理、Eureka 安全配置、Eureka-HA(高可用) 机制、Eureka 服务打包部署)
1.概念:Eureka 服务发现框架 2.具体内容 对于服务发现框架可以简单的理解为服务的注册以及使用操作步骤,例如:在 ZooKeeper 组件,这个组件里面已经明确的描述了一个服务的注册以及发现操 ...
随机推荐
- jQuery之jQuery扩展和事件
一.jQuery事件 常用事件 blur([[data],fn]) 失去焦点 focus([[data],fn]) 获取焦点( 搜索框例子) change([[data],fn]) 当select下拉 ...
- JSP概述
一.JSP页面本质上时一个Servlet,然而,用JSP开发比使用Servlet更容易,主要有两个原因,首先不必编译Servlet,其次JSP页面是一个以.jsp为扩展名的文本文件,可以使用任何编辑器 ...
- SQL语法汇总
以下默认为mySQL与SQLsever都能使用SQLsever不能使用的另外标出来了 显示数据库SHOW DATABASES;进入其中一个数据库USE students;显示进入数据库中的所有表SHO ...
- Java+selenium之WebDriver常见特殊情况如iframe/弹窗处理(四)
1. iframe 的处理 查找元素必须在对应的 ifarme 中查找,否则是找不到的 // 传入参数为 frame 的序号,从0开始 driver.switchTo().frame(Int inde ...
- 20165206 2017-2018-2 《Java程序设计》第9周学习总结
20165206 2017-2018-2 <Java程序设计>第9周学习总结 教材学习内容总结 URL类:URL类是java.net包中的一个重要的类,使用URL创建对象的应用程序称为客户 ...
- 【专栏学习】APM——异步编程模型(.NET不推荐)
(1)learning hard C#学习笔记 异步1:<learning hard C#学习笔记>读书笔记(20)异步编程 (2)<C# 4.0 图解教程> 22.4 异步编 ...
- VS2013 快捷键 与 RESHARPER 冲突(转)
1.VS设置工具-->选项-->环境-->键盘-->重置 2.RESHARPER -->Options-->Environment → Keyboard & ...
- 安装CentOS 7(转)
转载地址:https://www.cnblogs.com/wcwen1990/p/7630545.html CentOS7安装详解 本文基于vmware workstations进行CentOS7 ...
- RN错误随笔 - Unable to resolve module 'AccessibilityInfo'
错误信息:.React Native 运行报错:Unable to resolve module 'AccessibilityInfo' 可以看到在 异常的返回的JSON 结构中给出了推荐的解决方法 ...
- ORM框架之------Dapper,Net下无敌的ORM
一,介绍:Dapper是一款轻量级ORM工具.如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀.你又觉得ORM省时省力,这 ...