千家信息网

Spring Cloud Eureka的示例分析

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关Spring Cloud Eureka的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Eureka 是Spring Cloud
千家信息网最后更新 2025年12月03日Spring Cloud Eureka的示例分析

这篇文章将为大家详细讲解有关Spring Cloud Eureka的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Eureka 是Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka做了二次开发,主要负责完成微服务架构中的服务治理功能。

Eureka 基础架构三个核心要素

1:服务注册中心

2:服务提供者

3:服务消费者

服务治理主要分为

1:服务注册:

在服务治理框架中,通常都会构建一个服务注册中心,每个服务提供者需要向注册中心,登记自己的注册信息。比如IP,端口号,版本号,服务名,通信协议等等附加信息告知注册中心,注册中心会根据服务名,进行分类服务清单。例如下图:

eureka维护分类服务清单,是通过一个双层Map, 第一层Map的key就是服务名,例如上图的HELLO-SERVICE,第二层的Key就是具体的实例信息,例如上图的DLBOOH........:hello-service:8081

2:服务发现

由于在服务治理框架下运作程序,服务间的调用不在是通过指定具体的实例地址来实现,服务间的调用通过服务名来调用,例如:http://hello-service:8081/hello。所以当服务调用方 想要调用服务提供方的接口时,服务调用方是不知道服务提供方的具体实例地址的, 因此调用方需要向注册中心Eureka咨询服务,并获取所有服务的实例清单。例如:现有服务B想要调用服务A,服务B就需要向注册中心发起请求获取服务A的实例清单,注册中心返回服务A的实例清单,然后服务B会从清单中以某种策略轮询访问清单中的的实例,实现负载均衡的效果 访问方式可以通过 Ribbon。

实际生产项目中,不会在每一次请求中都获取服务列表清单,这样做效率低下。实际场景中缓存和服务剔除等机制也会有一些不同的实现方式

3:服务同步

当Eureka实现高可用后,服务提供者可分别注册到集群中的不同服务注册中心上,也就是说 它们的信息分别被不同的注册中心维护,此时由于服务中心互相注册为服务(高可用),当服务提供者发送注册请求到一个服务注册中心时,它会将该请求转发同步给集群中的其他注册中心,从而实现服务注册中心的服务同步。通过服务同步,两个服务提供者的服务信息就可以通过这两台服务注册中心中的任意一台获取到

4:服务续约

在注册完服务之后,服务提供者会维护一个心跳用来持续告诉Eureka"我还活着",以防止Eureka的剔除服务将该服务从列表清单中排除出去,我们称该操作为服务续约

关于服务续约有两个重要的属性,

##用于定义服务续约任务的调用间隔时间,默认为30秒

eureka.instance.lease-renewal-interval-in-seconds=30

##参数用于定义服务失效的时间,默认为90秒

eureka.instance.lease-expiration-duration-in-seconds=90

5:获取服务

当服务消费者程序启动时,它会发送一个Rest请求给注册中心,来获取上面注册的服务清单,为了性能考虑,Eureka会维护一份只读的服务清单来返回给客户端,同时该缓存清单会每隔30秒更新一次。

获取服务是服务消费者的基础,所以必须确保eureka.client.fetch-registry=true 默认为true,若希望修改缓存清单的更新时间,可以通过eureka.client.registry-fetch-interval-seconds=30 进行修改,默认30秒,参数单位秒

6:服务调用

获取服务清单后,通过服务名可以获取实例的名和实例的元数据(ip,port等等)利用Ribbon实现轮询方式调用服务提供方。

7: 服务下线

当服务下线后,正常情况下 我们是不希望,服务消费方继续调用已经下线的服务的,所以再服务提供方正常关闭时,会触发一个服务下线的REST请求,告诉Eureka "我要下线了"。Eureka收到请求后,会将此服务设置为(DOWN),并将此消息广播到出去,更新缓存清单。

8:服务中心的失效剔除

当服务非正常关闭时,比如机器Down了,断电,内存溢出,网络故障等等。这时候是不会触发服务下线的REST的请求,为了将这些已经无法提供的服务剔除,Eureka Server会在启动时,创建一个定时任务,默认每隔60秒将清单中超时没有续约的剔除。

关于"Spring Cloud Eureka的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

服务 清单 实例 下线 提供者 信息 供方 缓存 同步 消费 不同 可以通过 方式 时间 消费者 篇文章 更新 示例 分析 上图 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发面试开放题 图形化输入输出软件开发方案 redis从服务器配置 软件开发生产率计算公式 cs服务器一个玩家占用多少宽带 网络安全员需要培训多长时间 800块买个数据库值不值 服务器与台式机cpu 电子邮箱数据库字段名 指导平台提升网络安全能力 exp是什么网络安全 网络安全图文结合色彩鲜艳 oracle数据库调用 广州慧科互联网科技有限公司 租美国服务器 2021年网络安全校园招聘 软件开发项目简历模板 武汉有软件开发公司吗 如何进内网服务器 苏州营销软件开发咨询热线 服务器可以升级内存吗 成都三吾倍信网络技术有限公司官网 728服务器 我国软件开发行业状况 软件开发岗位在银行中的作用 软件开发管理者常犯错怎么办 安卓模拟器无法与本地服务器交互 led屏编辑软件开发 桌面小软件开发用什么语言 计算机网络技术专业属于哪个大类
0