Spring Cloud 学习3-Eureka高可用集群快速搭建

在微服务架构中,一个系统往往由十几甚至几十个服务组成,若将这些服务全部注册到同一个 Eureka Server 中,就极有可能导致 Eureka Server 因不堪重负而崩溃,最终导致整个系统瘫痪。解决这个问题最直接的办法就是部署 Eureka Server 集群。

集群中有多个 eureka 服务,每个 eureka 服务都是相互复制的,会把客户端注册进来的服务复制到 eureka 集群中的其他节点里面来。其实简单来说就是集群中 Eureka Server每个节点相互复制。

接下来,把我们之前写的注册中心构建成一个拥有 3 个 Eureka Server 实例的集群。

一、配置三个eureka-server

在springcloud-eureka下添加三个配置文件,如下图命名。 

Spring Cloud 学习3-Eureka高可用集群快速搭建_第1张图片

application-8761.yml配置如下:

server:
  port: 8761  # 服务端口号

eureka:
  instance:
    hostname: eureka8761 #eureka服务端的实例名称,
  client:
    register-with-eureka: false #是否注册到eureka  不向注册中心注册自己
    fetch-registry: false #是否从eureka中拉取注册信息  自己就是注册中心,负责维护实例,不需要检索实例。
    service-url:
      #注册到eureka8762和eureka8763中
      defaultZone: http://admin:admin@eureka8762:8762/eureka/,http://admin:admin@eureka8763:8763/eureka/

application-8762.yml配置如下:

server:
  port: 8762  # 服务端口号

eureka:
  instance:
    hostname: eureka8762 #eureka服务端的实例名称,
  client:
    register-with-eureka: false #是否注册到eureka  不向注册中心注册自己
    fetch-registry: false #是否从eureka中拉取注册信息  自己就是注册中心,负责维护实例,不需要检索实例。
    service-url:
      #注册到eureka8763和eureka8761中
      defaultZone: http://admin:admin@eureka8761:8761/eureka/,http://admin:admin@eureka8763:8763/eureka/

application-8763.yml配置如下:

server:
  port: 8763  # 服务端口号

eureka:
  instance:
    hostname: eureka8763 #eureka服务端的实例名称,
  client:
    register-with-eureka: false #是否注册到eureka  不向注册中心注册自己
    fetch-registry: false #是否从eureka中拉取注册信息  自己就是注册中心,负责维护实例,不需要检索实例。
    service-url:
      #注册到eureka8762和eureka8761中
      defaultZone: http://admin:admin@eureka8761:8761/eureka/,http://admin:admin@eureka8762:8762/eureka/

二、修改本地host文件

由于我们是在本地搭建的 Eureka Server 集群,因此我们需要修改本地的 host 文件,添加如下配置:

127.0.0.1	eureka8761
127.0.0.1	eureka8762
127.0.0.1	eureka8763

三、分别启动三个服务

第一种方式:jar包启动

将springcloud-eureka打成jar包,用命令按照指定配置文件启动三个服务:
 

java -jar springcloud-eureka.jar --spring.profiles.active=8761

java -jar springcloud-eureka.jar --spring.profiles.active=8762

java -jar springcloud-eureka.jar --spring.profiles.active=8763

第二种方式:IDEA中启动三个服务

我们也可直接在idea中启动三个服务,方便使用。

1,在run/debug Confinurations 页面,创建三个服务如下图。

2,分别配置启动参数

EurekApplication8761 --spring.profiles.active=8761
EurekApplication8762 --spring.profiles.active=8762
EurekApplication8763 --spring.profiles.active=8763

 

Spring Cloud 学习3-Eureka高可用集群快速搭建_第2张图片

3,依次启动三个服务

Spring Cloud 学习3-Eureka高可用集群快速搭建_第3张图片

访问8761注册中心地址 http://eureka8761:8761/ 

发现DS Replicas集群 中已有 8762和8763

Spring Cloud 学习3-Eureka高可用集群快速搭建_第4张图片

当然访问8762和8763也会发现注册了其他的服务。 

四、启动一个Eureka 客户端

我们启动springcloud-provider并注册到8763中

spring:
  application:
    name: provider  #微服务名称,对外暴漏的微服务名称, 重要
server:
  port: 8081  # 服务端口号

eureka:
  client:
    healthcheck:
      enabled: true #健康检测
    service-url:
      defaultZone: http://admin:admin@eureka8763:8763/eureka/  #注册中心地址 添加用户密码admin:admin@

五、访问三个服务端,发现都有注册springcloud-provider

Spring Cloud 学习3-Eureka高可用集群快速搭建_第5张图片

Spring Cloud 学习3-Eureka高可用集群快速搭建_第6张图片 

服务提供者(springcloud-provider)所提供的服务已经注册到了 eureka8763并且同步到了集群中另外两个节点eureka8761和eureka8762中。

自此我们就完成了 Eureka Server 集群的搭建和使用。

你可能感兴趣的:(Spring,Cloud,学习,java,spring,cloud,eureka,微服务)