SpringClould之Eureka原理详解

SpringCloud简介

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

SpringCloud组成

Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka, ActiveMQ这样的角色。对于我们想快速实践微服务的开发者来说,第一类子项目就已经足够使用.

前景:

Eureka 注册中心

概念:

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,通俗讲就是中间层服务,以达到负载均衡和中间层服务故障转移的目的。Eureka包含两个组件:Eureka Server和Eureka Client。

基础架构

 

Eureka Server提供服务注册,各节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。

Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。

在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。

Eureka Server之间通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。

透明化路由

分布式微服务架构中,服务注册中于存储服务提供者地址信息、服务发布相关的属性信息,消费者通过主动查询和被动通知的获取服务提供者的地址信息, 再需要通过硬编码得到提供者的地址信息。消费者只需要知道当前系统发布了那些服务,需要知道服务具体存在于什么位置,这就是透明化路由。

Eureka 交互流程及原理

 流程说明

  1. 图中us-east-1c、us-east-1d,us-east-1e代表不同的区也就是不同的机房
  2. 图中每Eureka Server都是集群。
  3. 图中Application Service作为服务提供者向Eureka Server中注册服务, Eureka Server接受到注册事件会在集群和分区中进据同步,Application Client作为消费端(服务消费者)可以从Eureka Server中获取到服务注册信 息,进务调
  4. 微服务启动后,会周期性地向Eureka Server发送(默认周期为30秒) 以续约的信息
  5. 、Eureka Server在时间内没有接收到某个微服务节点的,Eureka Server将会注销该微服务节点(默认90秒)
  6. 每个Eureka Server同时也是Eureka Client,多个Eureka Server之间通过复制的完成服务注册列表的同步Eureka Client会缓存Eureka Server中的信息。即使所有的Eureka Server节点都宕掉,服务消费者依然可以使存中的信息找到服务提供者。

Eureka通过检测、健康检查和客户端缓存等机制,提统的灵活性、可伸缩性和可

  1.  

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92005 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月10日
下一篇 2022年4月10日

相关推荐