• 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:

    port:9000

    #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:

    port:9000

    #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 注册中心。

       

  • 相关阅读:
    Trojan.DL.Agent.nxd和RootKit.Agent.yj木马清除
    Java中的格式化数值(eg:保留两位小数)
    Int16, Int32, Int64的一点感悟
    在win2003上设置asp网站
    WPF学习笔记.
    对WF工作流异常(Event on interface type for instance id cannot be delivered)的一点总结.
    创建,安装,调试 Windows Service
    灵活而又可怕的params参数数组
    (转) 输入码、区位码、国标码与机内码
    SQL Server 2008 未来将不再包含全文检索功能, 再研究此功能已经没多大意思了.
  • 原文地址:https://www.cnblogs.com/li3807/p/8676386.html
Copyright © 2020-2023  润新知