首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Eureka原理理解和Eureka集群搭建

Eureka原理理解和Eureka集群搭建

作者头像
全栈程序员站长
发布2022-09-06 16:04:59
发布2022-09-06 16:04:59
4370
举报

大家好,又见面了,我是你们的朋友全栈君。

简介

Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。spring cloud框架集成了Eureka,在微服务架构中充当注册中心的角色,方便管理各种微服务。

Eureka原理

Eureka 分为 Eureka Server 和 Eureka Client及服务端和客户端。Eureka Server为注册中心,是服务端,而服务提供者和消费者即为客户端,消费者也可以是服务者,服务者也可以是消费者。同时Eureka Server在启动时默认会注册自己,成为一个服务,所以Eureka Server也是一个客户端,这是搭建Eureka集群的基础。

服务提供者向注册中心注册服务,并每隔30秒发送一次心跳,就如同人还活着存在的信号一样,如果Eureka在90秒后还未收到服务提供者发来的心跳时,那么它就会认定该服务已经死亡就会注销这个服务。这里注销并不是立即注销,而是会在60秒以后对在这个之间段内“死亡”的服务集中注销,如果立即注销,势必会对Eureka造成极大的负担。这些时间参数都可以人为配置。 Eureka还有自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,所以不会再接收心跳,也不会删除服务。

客户端消费者会向注册中心拉取服务列表,因为一个服务器的承载量是有限的,所以同一个服务会部署在多个服务器上,每个服务器上的服务都会去注册中心注册服务,他们会有相同的服务名称但有不同的实例id,所以拉取的是服务列表。我们最终通过负载均衡来获取一个服务,这样可以均衡各个服务器上的服务。

Eureka集群

如果我们只配置一个Eureka服务端,那么如果这个服务端崩盘,那么所有服务都无法获取,这肯定不是我们不期望的。所以为了保证高可用性,我们需要搭建Eureka集群。

前面讲原理时已经提到Eureka Server在启动时默认会注册自己,成为一个服务,所以Eureka Server也是一个客户端。也就是说们我们可以配置多个Eureka Server,让他们之间相互注册,当服务提供者向其中一个Eureka注册服务时,这个服务就会被共享到其他Eureka上,这样所有的Eureka都会有相同的服务。

Eureka集群搭建步骤很简单。 引入server依赖。

主方法上加上注解@EnableEurekaServer

然后配置端口、名称和向哪个服务端注册的url

服务提供者注册服务步骤也很类似。 引入client依赖。

主方法上加上注解@EnableDiscoveryClient

配置向哪个服务端注册的url,这里我们要把所有服务端配上,虽然就算只向一个服务端注册它也会共享到所有服务端,但我们不能保证这个服务端没有蹦。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134431.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月6,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • Eureka原理
  • Eureka集群
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档