Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建
高可用集群
在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka 高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心,已实现服务清单的互相同步,达到高可用效果,注册中心的高可用至少需要2台服务器分别部署 Eureka 注册中心,集群结构如下:

准备工作
|
Eureka Server01 |
Eureka Server02 |
|
|
操作系统 |
CentOS 7 |
CentOS 7 |
|
IP |
192.168.2.214 |
192.168.2.215 |
|
机器名称 |
server01.application.com |
server02.application.com |
|
hosts |
192.168.2.214 eurekaserver01 192.168.2.215 eurekaserver02 |
192.168.2.214 eurekaserver01 192.168.2.215 eurekaserver02 |
Eureka 注册中心配置
在之前的单机注册中心的基础上调整配置,创建二个 profiles 分别表示 eureka server01 和 eureka server02 服务器的配置,用于在不同机器上使用不同的配置,修改 application.yml 配置如下:
#配置应用名称
spring:
application:
name:eureka-server01
#设置profiles的名称,在启动程序时指定会使用指定的配置
profiles:eurekaserver01
#配置服务端口
server:
#eureka基本配置
eureka:
instance:
#配置应用名称,优先级低于spring.applicaton.name
appname:eureka-server01
#配置eureka实例主机名称,默认为主机名称
hostname:eurekaserver01
client:
#是否到eureka服务器中抓取注册信息,用于高可用
fetch-registry:true
#是否将自己信息注册到Eureka服务器,用于高可用
register-with-eureka:true
#配置服务注册中心地址
service-url:
defaultZone:http://eurekaserver02:${server.port}/eureka
---
#配置应用名称
spring:
application:
name:eureka-server02
#设置profiles的名称,在启动程序时指定会使用指定的配置
profiles:eurekaserver02
#配置服务端口
server:
#eureka基本配置
eureka:
instance:
#配置应用名称,优先级低于spring.applicaton.name
appname:eureka-server02
#配置eureka实例主机名称,默认为主机名称
hostname:eurekaserver02
client:
#是否到eureka服务器中抓取注册信息,用于高可用
fetch-registry:true
#是否将自己信息注册到Eureka服务器,用于高可用
register-with-eureka:true
#配置服务注册中心地址
service-url:
defaultZone:http://eurekaserver01:${server.port}/eureka
在配置中我们可以看到,eurekaserver01 的 service-url.defaultZone 的Url 是指向到 eurekaserver02 服务器的,而 eurekaserver02 的 service-url.defaultZone 的 Url 是指向到 eurekaserver01 服务器的,简单的说,就是二个服务器启动后,会互相注册
Eureka 注册中心启动
注册中心启动可以使用两种方案,在运行 jar 文件时通过参数设置 --spring.profiles.active 来设置使用那个 profiles,也可以调整启动类,通过接收输入来使用 profiles,示例如下:
- 使用参数
$> java -jar eureka-server.1.0 --spring.profiles.active=eurekaserver01
$> java -jar eureka-server.1.0 --spring.profiles.active=eurekaserver02
- 启动类获取输入
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication{
public static void main(String[]args){
Scanner scanner=new Scanner(System.in);
String profile=scanner.nextLine();
new SpringApplicationBuilder(EurekaServerApplication.class).profiles(profile).run(args);
}
}
访问 Eureka 服务
访问地址 http://192.168.2.214:9000 和 http://192.168.2.215:9000 可以看到,DS Replicas 中有另一台Eureka 注册中心,在 instance currently registered with Eureka 中显示了注册的 Eureka 注册中心。

Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建的更多相关文章
- Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用-服务提供和消费
由于 Eureka 注册中心只是在内存中保存服务注册实例,并且没有将服务注册实例进行同步,因此我们需要对服务提供和消费进行调整,需要指定服务提供和消费的注册.服务发现的具体Eureka 注册中心配置, ...
- Spring Cloud(Dalston.SR5)--Eureka 注册中心搭建
基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现 服务注册:在 ...
- Eureka注册中心高可用及常用配置项
一.前言 前面已经简单的介绍了 Eureka 注册中心的使用以及查看.下面将继续进行 Eureka 的说明以及应用. 二.Eureka 的高可用搭建 在实际生产项目中,为了保证服务的可用性,连续性,一 ...
- Spring Cloud(Dalston.SR5)--Eureka 服务提供者
要使微服务应用向注册中心发布自己,首先需要在 pom.xml 配置文件中增加对 spring-boot-starter-eureka 的依赖,然后在主类中增加 @EnableDiscoveryClie ...
- Spring Cloud(Dalston.SR5)--Eureka 服务消费
服务被注册.发布到 Eureka 服务器后,需要有程序去发现他,并且进行调用,称为服务消费,一个服务可能会部署多个实例,调用过程可能涉及负载均衡.服务器查找等问题,这些问题 Netflix 项目已经帮 ...
- Eureka注册中心高可用集群配置
Eureka高可用集群配置 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 我们再新建两个module microservice-eureka-server-2002 microservic ...
- springCloud 之 Eureka注册中心高可用配置
springCloud的eureka高可用配置方案思路是:几个服务中心之间相互注册,比如两个注册中心,A注册到B上,B注册到A上,如果是三个注册中心则是:A注册到BC上,B注册到AC上,C注册到AB上 ...
- Spring Cloud Eureka 注册中心高可用机制
一.Eureka 正常工作流程 Service 服务作为 Eureka Client 客户端需要在启动的时候就要向 Eureka Server 注册中心进行注册,并获取最新的服务列表数据. Eurek ...
- Spring Cloud(Dalston.SR5)--Eureka 常用配置
配置参数 默认值 说明 服务注册中心配置 Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean eu ...
随机推荐
- encodeURI和encodeURIComponent区别
参考:https://www.jianshu.com/p/075f5567c9a1 这两个函数功能上面比较接近,但是有一些区别. encodeURI:不会进行编码的字符有82个 :!,#,$,& ...
- OpenID
OpenId是一个以用户为中心的数字身份识别框架,它具有开放.分散.自由等特性.OpenId的创建是基于这样一个概念:我们可以通过URI(或者URL网址)来识别一个网站.同样,我们也可以通过这样的方式 ...
- quartz储存方式之JDBC JobStoreTX
这篇单单记录一下个人配置使用quartz的JDBC JobStoreTX的过程以及其中遇到的问题,这里的quartz是version2.2.1,数据库使用的MySQL. JDBCJobStore储存是 ...
- ubuntu下利用docker搭建gitloab手记
0.环境信息 ubuntu server 14.04 lts 64位版本 Docker version 17.05.0-ce, build 89658be 1.从阿里加速站下载gitlab sudo ...
- viewport是左下角开始的
- C高级第二次PTA作业
6-7 删除字符串中数字字符 1.设计思路: (1)算法: 第一步:定义一个字符数组item,输入一个字符串赋给字符数组item.调用函数delnum, 第二步:在函数delnum中定义循环变量i=0 ...
- 【算法】QuickSort
快速排序,时间复杂度O(N*logN),要能熟练掌握! 以下主要参考http://blog.csdn.net/morewindows/article/details/6684558, 感谢原博主! 该 ...
- 环境变量、cp、mv、cat 等命令
1.环境变量: PATH 个人理解 环境变量,即是所有命令文件所存放的目录,或是人为的定义的目录,(命令文件所存放的目录,当输入一个命令的时候,系统会自动找到且不报错,并不需要输入绝对路径,来运行相关 ...
- 基于PaaS和SaaS研发平台体系
基于PaaS和SaaS研发的商业云平台实战 背景介绍 SaaS.PaaS.IaaS等云服务模式已经被大家普遍认可,在研发过程中借力一些PaaS和SaaS平台,能够提升产品的研发速度和功能稳定程度.本文 ...
- 【HDOJ3018】【一笔画问题】【欧拉回路+并查集】
http://acm.hdu.edu.cn/showproblem.php?pid=3018 Ant Trip Time Limit: 2000/1000 MS (Java/Others) Me ...