iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Spring Cloud中如何使用Eureka集群搭建高可用服务注册中心
  • 543
分享到

Spring Cloud中如何使用Eureka集群搭建高可用服务注册中心

2023-06-04 08:06:03 543人浏览 安东尼
摘要

今天就跟大家聊聊有关spring cloud中如何使用Eureka集群搭建高可用服务注册中心,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。这一篇主要介绍一下如何搭建一个高可用的 Eu

今天就跟大家聊聊有关spring cloud中如何使用Eureka集群搭建高可用服务注册中心,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

这一篇主要介绍一下如何搭建一个高可用的 Eureka 集群。

1. 分布式和集群有啥区别?

可能有很多人对分布式和集群这两个概念有点混淆。我先用通俗易懂的话给大家解释下:

分布式:一个业务分拆多个子业务,部署在不同的服务器

集群:同一个业务,分别部署在不同的服务器

所以分布式的每一个节点,完成的是不同的业务,一个节点挂了,那么这个业务功能就无法访问了,甚至可能会影响到其他业务。而集群是一个比较有组织的架构,正因为有组织性,一个服务节点挂了,其他服务节点可以顶上来,从而保证了服务的健壮性。

所以说,集群可以理解为:你中有我,我中有你,手拉手肩并肩,一起保证服务的健壮性

2. Eureka集群逻辑

在搭建 Eureka 集群之前,先来回顾一下前面搭建的单个 Eureka 服务,看下 yml 配置文件:

server:
 port: 7001

eureka:
 instance:
   #eureka服务端的实例名称
   hostname: eureka01
 client:
   # false表示不向注册中心注册自己
   reGISter-with-eureka: false
   # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
   fetch-registry: false
   service-url:
     #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
     defaultZone: Http://${eureka.instance.hostname}:${server.port}/eureka/

这是一个 Eureka 服务,名称是 eureka7001, 注册中心是它自己的。那么我们如何去搭建一个 Eureka 集群呢?假设现在有三个 Eureka 服务:eureka7001、eureka7002 和 eureka7003。

为了体现出集群的你中有我,我中有你,不难想象,eureka7001 中应该挂上 eureka7002 和 eureka7003;eureka7002 中应该挂上 eureka7001 和 eureka7003;eureka7003 中应该挂上 eureka7001 和 eureka7002。如下图所示:

Spring Cloud中如何使用Eureka集群搭建高可用服务注册中心

这样就搭建好了一个 Eureka 集群了,那么我们如何去实现呢?接下来就落实到具体实现方式。

3. Eureka7001的改造

由上面的分析可知,Eureka7001 需要挂上 Eureka7002 和 Eureka7003,所以在 Eureka7001 的配置文件中需要重新配置一下 defaultZone,如下:

server:
 port: 7001

eureka:
 instance:
   #eureka服务端的实例名称
   hostname: eureka01
 client:
   # false表示不向注册中心注册自己
   register-with-eureka: false
   # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
   fetch-registry: false
   service-url:
     defaultZone: http://eureka02.com:7002/eureka/,http://eureka03.com:7003/eureka/

OK,defaultZone 配置好了 eureka7002 和 eureka 7003。

4. 搭建Eureka7002

以同样的方式,拷贝一份 Eureka7001 的工程,修改其配置文件:

server:
 port: 7002

eureka:
 instance:
   #eureka服务端的实例名称
   hostname: eureka02
 client:
   # false表示不向注册中心注册自己
   register-with-eureka: false
   # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
   fetch-registry: false
   service-url:
     defaultZone: http://eureka01.com:7001/eureka/,http://eureka03.com:7003/eureka/

可以看出,在 eureka7002 中,把 eureka7001 和 eureka7003 挂进来。

5. 搭建Eureka7003

以相同的方式,把 eureka7003 也搭建好。

server:
 port: 7003

eureka:
 instance:
   #eureka服务端的实例名称
   hostname: eureka03
 client:
   # false表示不向注册中心注册自己
   register-with-eureka: false
   # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
   fetch-registry: false
   service-url:
     defaultZone: http://eureka01.com:7001/eureka/,http://eureka02.com:7002/eureka/

ok,现在三个 eureka 注册中心都搭建好了,最后别忘了在本地 hosts 文件中将 eureka7001、eureka7002 和 eureka7003 映射到 127.0.0.1。

6. 修改订单服务

我们首先来回忆下,之前的订单服务提供方的配置文件是怎么写的:

# 客户端注册进eureka服务列表里
eureka:
 client:
   service-url:
     defaultZone: http://eureka01:7001/eureka/
 instance:
   instance-id: 书籍订单服务-8001  # 人性化显示出服务的信息
   prefer-ip-address: true    # 访问路径可显示ip地址

是将订单服务注册到 eureka7001 中,因为之前就这一个 eureka 注册中心,那么现在有三个了,我们需要修改下配置,将订单服务注册到三个 eureka 中。

# 客户端注册进eureka服务列表里
eureka:
 client:
   service-url:
     defaultZone: http://eureka01:7001/eureka/,http://eureka02:7002/eureka/,http://eureka03:7003/eureka/
 instance:
   instance-id: 书籍订单服务-8001  # 人性化显示出服务的信息
   prefer-ip-address: true    # 访问路径可显示ip地址

7. 测试效果

OK,所有搭建步骤都完成了,接下来分别启动一下 eureka7001、eureka7002 和 eureka7003,再启动下订单提供服务。然后我们可以分别访问下三个 eureka 注册中心,看一下结果。我以访问 eureka7001 为例,可以看到该服务中心挂着 eureka7002 和 eureka7003,而且订单服务也成功注册到该注册中心。

Spring Cloud中如何使用Eureka集群搭建高可用服务注册中心

看完上述内容,你们对spring Cloud中如何使用Eureka集群搭建高可用服务注册中心有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: Spring Cloud中如何使用Eureka集群搭建高可用服务注册中心

本文链接: https://www.lsjlt.com/news/237044.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作