高可用集群

在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,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. Example of Abstract Class

    The Vehicle class has abstract members that must be implemented by the Car class or any other class ...

  2. Homebrew&Mongod

    Homebrew官网:http://brew.sh Homebrew installs the stuff you need that Apple didn't Homebrew的安装非常简单,打开终 ...

  3. react native 之 获取键盘高度

    多说不如多撸: /** * Created by shaotingzhou on 2017/2/23. *//** * Sample React Native App * https://github ...

  4. nginx 之 proxy_pass详解

    在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径:如果没有/,表示相对路径,把匹配的路径部分也给代理走.     假设下面四种情况分别用 h ...

  5. C#类中字段封装为属性

    本文描述内容转载 https://zhidao.baidu.com/question/1174413218458798139.html 感谢 冥冥有你PD 的解答!!! 问题思索1 类成员包括变量和方 ...

  6. sublime text3 key

    Sublime Text 3 3126 注册码 第一个测试通过 —– BEGIN LICENSE —– Michael Barnes Single User License EA7E-821385 8 ...

  7. Cython 使用

    链接: Cython是一个快速生成Python扩展模块的工具,从语法层面上来讲是Python语法和C语言语法的混血,当Python性能遇到瓶颈时,Cython直接将C的原生速度植入Python程序,这 ...

  8. js-自加和自减

    i++ 返回的是自增之前的值    先利用再加 ++i 返回的是自增之后的值    先加再利用

  9. mvc core2.1 Identity.EntityFramework Core 配置 (一)

    https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/customize_identity_model?view=a ...

  10. 解决ERROR - unregister mbean error javax.management.InstanceNotFoundException: com.alibaba.druid:type=

    https://blog.csdn.net/chengsi101/article/details/72627062 https://www.cnblogs.com/gradven/p/6323195. ...