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

   

原文地址:https://www.cnblogs.com/li3807/p/8676386.html