首页 > 图灵资讯 > 技术篇>正文

系统学习Spring Cloud五大核心组件

2023-03-29 15:14:30

毫无疑问,Spring Cloud是目前微服务架构领域的领导者Spring Cloud作为中小互联网公司福音,因此,开发成本大大降低,Spring Cloud越来越受到开发人员的青睐。为了加深朋友们的青睐spring 了解cloud,让我们系统地学习这篇文章Spring Cloud五大核心组件

Spring 使用Cloud是一系列框架的有序集合Spring Boot通过分布式系统基础设施的开发,巧妙地简化了分布式系统的便利性Spring Boot风格的重新包装屏蔽了复杂的配置和实现原理,最终为开发人员留下了一个简单、易于理解、易于部署和维护的分布式系统开发工具包。当然,这一切的前提是Spring 五大核心组件Cloud。

  • Spring CloudEureka

Spring Cloud Eureka 是 Spring Cloud Netflix 基于Netflix的微服务套件的一部分 Eureka 二次包装主要负责微服务架构中的服务治理功能。

Eureka是基于REST(代表性状态转移)的服务,主要用于AWS云中的定位服务,实现负载平衡和中间服务器故障转移。因此,我们称之为Eureka服务器。Eureka还有一个基于Java的客户端组件Eureka Client,它使与服务的互动更容易。客户端还有一个内置的负载平衡器,可以实现基本的循环负载平衡。在Netflix中,更复杂的负载平衡器包装Eureka,提供基于流量、资源使用、错误条件等因素的加权负载平衡,以提供优异的弹性。简而言之,Eureka 是服务发现框架。

二、Spring CloudConfig

Spring Cloud Config 为分布式系统中的外部配置提供服务器和客户支持。使用 Config 服务器可以在中心位置管理所有环境中应用程序的外部属性,并集中保存配置信息。

简单来说,Spring Cloud Config 它可以将每个应用程序/系统/模块的配置文件存储在统一的地方并进行管理(Git 或者 SVN)。

  • Spring Cloud Zuul

ZUUL 是从设备和 web 站点到 Netflix 流程应用后端所有要求的前门。作为边界服务应用,ZUUL 它是为了实现动态路由、监控、灵活性和安全性而建造的。它还可以根据情况向多个路由要求路由 Amazon Auto Scaling Groups(亚马逊自动缩放组是亚马逊的云计算方法) 的能力。

总之,如果前端和移动端需要调用后端系统,则统一从 Zuul 网关进入,由 Zuul 向相应服务转发网关请求。

  • Spring CloudHystrix

在微服务架构中,一个系统将有大量的服务。但是,如果系统处于高并发场景中,当大量请求涌现时,系统会出现多线程死锁,最终导致系统崩溃。由于多服务相互呼叫,如果不进行任何保护,某项服务将被挂断,这将导致连锁反应和其他服务。所以,Hystrix应运而生。

Hystrix 它是一种隔离、熔断和降级的框架,可以通过使用来提高整个系统的弹性。说白了,Hystrix 会有很多小线程池,比如订单服务请求库存服务是线程池,请求存储服务是线程池,请求积分服务是线程池。每个线程池中的线程仅用于请求该服务。

事实上,这里提到的熔断是指Hystrix 您可以使用简单的中断路器模式@HystrixCommand 标注某种方法,使Hystrix能够使用断路器“包装”每当调用时间超过指定时间(默认为1000ms)时,该方法的调用就会中断。

降级是为了更好的用户体验。当一种方法呼叫异常时,通过执行另一个代码逻辑给用户友好的回复。这对应 Hystrix 的 后备处理模式。您可以通过设置fallbackmethod来设置备用代码逻辑。

五、Spring CloudRibbon

Ribon是Netflix的开源负载平衡项目,是客户端/过程中运行在消费者端的负载平衡器。其工作原理是,消费者在获得所有服务列表后,使用负载平衡算法在其内部调用多个系统。

假设库存服务部署在图像的例子中192.168.169:9000

192.168.170:9000

192.168.171:9000

192.168.172:9000

192.168.173:9000

此时的情况是Feign怎么知道该要求哪台机器?此时Spring Cloud Ribbon派上用场。它的功能是负载均衡,这将帮助您在每个请求中选择一台机器,并将请求均匀地分发给每台机器。默认情况下,Ribbon的负载均衡是最经典的Round Robin轮询算法。简单来说,如果订单服务要求库存服务10次,请先要求第一台机器,然后是第二台机器,第三台机器,第四台机器,第五台机器,然后再来。—循环,第一台机器,第二台机器...以此类推。

此外,Ribbon与Feign和Eureka密切合作完成工作,具体如下:首先,Ribbon将从 Eureka 在Client中获得相应的服务注册表,也就知道所有服务部署在哪些机器上,监控哪些端口号。然后Ribon可以使用默认Round Robin算法,从中选择机器Feign将对机器进行结构和要求。

近年来,随着微服务架构和微服务架构的发展流行的Docker容器概念也会使Spring 未来Cloud越来越多“云”软件开发风格中立有一席之地,然而Spring Cloud五个核心组件,更使得Spring 像虎添翼一样,Cloud特别是在各种分布式解决方案中提供标准化、全站式的技术解决方案,其意义可能与当年相媲美Servlet规范的诞生,有效地促进了服务端软件系统技术水平的提高。

上一篇 刨根问底—从Java语言定义深究Java
下一篇 关键字Protected该怎样使用

文章素材均来源于网络,如有侵权,请联系管理员删除。