高可用集群

在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,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:9000http://192.168.2.215:9000 可以看到,DS Replicas 中有另一台Eureka 注册中心,在 instance currently registered with Eureka 中显示了注册的 Eureka 注册中心。

Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建的更多相关文章

  1. Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用-服务提供和消费

    由于 Eureka 注册中心只是在内存中保存服务注册实例,并且没有将服务注册实例进行同步,因此我们需要对服务提供和消费进行调整,需要指定服务提供和消费的注册.服务发现的具体Eureka 注册中心配置, ...

  2. Spring Cloud(Dalston.SR5)--Eureka 注册中心搭建

    基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现 服务注册:在 ...

  3. Eureka注册中心高可用及常用配置项

    一.前言 前面已经简单的介绍了 Eureka 注册中心的使用以及查看.下面将继续进行 Eureka 的说明以及应用. 二.Eureka 的高可用搭建 在实际生产项目中,为了保证服务的可用性,连续性,一 ...

  4. Spring Cloud(Dalston.SR5)--Eureka 服务提供者

    要使微服务应用向注册中心发布自己,首先需要在 pom.xml 配置文件中增加对 spring-boot-starter-eureka 的依赖,然后在主类中增加 @EnableDiscoveryClie ...

  5. Spring Cloud(Dalston.SR5)--Eureka 服务消费

    服务被注册.发布到 Eureka 服务器后,需要有程序去发现他,并且进行调用,称为服务消费,一个服务可能会部署多个实例,调用过程可能涉及负载均衡.服务器查找等问题,这些问题 Netflix 项目已经帮 ...

  6. Eureka注册中心高可用集群配置

    Eureka高可用集群配置 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 我们再新建两个module  microservice-eureka-server-2002  microservic ...

  7. springCloud 之 Eureka注册中心高可用配置

    springCloud的eureka高可用配置方案思路是:几个服务中心之间相互注册,比如两个注册中心,A注册到B上,B注册到A上,如果是三个注册中心则是:A注册到BC上,B注册到AC上,C注册到AB上 ...

  8. Spring Cloud Eureka 注册中心高可用机制

    一.Eureka 正常工作流程 Service 服务作为 Eureka Client 客户端需要在启动的时候就要向 Eureka Server 注册中心进行注册,并获取最新的服务列表数据. Eurek ...

  9. Spring Cloud(Dalston.SR5)--Eureka 常用配置

    配置参数 默认值 说明 服务注册中心配置 Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean eu ...

随机推荐

  1. 多进程于多线程的区别,cpu密集型适合用什么

    多线程:在单个程序中同事运行多少个线程完成不同的工作,成为线程. 线程共享内存空间,进程的内存是独立的, 同一个进程的线程间可以直接交流: 两个进程想通信,必须通过一个中间代理来实现, 一个线程可以控 ...

  2. 58-63用ssh远程连接linux系统

    一.注意 在CentOS7.6中,ifconfig来查询IP已经不再适用,要用ip add 二.vim编辑器 编辑:按[i]键可以进入到编辑状态,显示insert这样的字眼就对了 退出:按esc退出编 ...

  3. SpringBoot Maven项目 Helloworld 测试

    SpringBoot 化繁为简,简化配置 SpringBoot官方:http://projects.spring.io/spring-boot/SpringBoot使用介绍:http://blog.c ...

  4. Python学习笔记第十八周

    目录: 一.JavaScript正则表达式 1.test  2.exec 二.BootStrap  1.响应式  2.图标.字体  3.基本使用 三.Django 1.安装  2.创建目录  3.进入 ...

  5. 安装12C小问题及pdb表空间配置

    安装12C小问题及pdb表空间配置 一.安装 1.RPM包 #安装12C需要安装的rpm包,官网搜索,做个记录 bc binutils-2.23.52.0.1-12.el7(x86_64) compa ...

  6. 【leetcode】35-Search Insert Position

    problem Search Insert Position 一种容易想到的是暴力破解法,一种是常用的二分法. 暴力破解法1(不推荐) class Solution { public: int sea ...

  7. JavaBasic_09

    方法的参数传递 方法调用时参数值的传递可以分为"值传递"和"引用传递"两种 值传递 - a.当方法的参数为基本数据类型时 b.实参的值被复制给形参,改变形参不会 ...

  8. 异步测试celery

    django异步请求: Django从一个http请求发起,到获得响应返回html页面的流程大致如下:http请求发起 -- http handling(request解析) -- url mappi ...

  9. 20155219 2016-2017-2 《Java程序设计》第5周学习总结

    20155219 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 异常处理 语法与继承构架 异常就是程序在运行时出现的不正常情况.java中的错误以对象的方式 ...

  10. 博客 first

    2016.10.28 这会是一个值得纪念的日子,我将会从此刻开始,1~2天不间断的更新我再软件,编程方面的学习历程和在大学的琐事. 希望N年后看到,能够回味. a good memery....... ...