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

本文详细介绍了如何在微服务架构中搭建EurekaServer集群,通过配置三个不同的Eureka服务实例,并设置它们互相注册,实现高可用。同时,修改本地host文件以确保服务间的通信,并通过启动Eureka客户端验证服务注册的正确性。最后展示了服务提供者成功注册到集群中的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

一、配置三个eureka-server

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

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

 

3,依次启动三个服务

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

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

当然访问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

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值