当前位置 博文首页 > SpringCloud | 通过电商业务场景让你彻底明白SpringCloud核心组

    SpringCloud | 通过电商业务场景让你彻底明白SpringCloud核心组

    作者:JustJavaIt 时间:2021-01-10 18:02

    本文分为两个部分:

    1. Spring Cloud"全家桶"简单介绍。

    2. 通过实际电商业务场景,让你彻底明白Spring Cloud几个核心组件的底层原理。

    Spring Cloud介绍

    SpringCloud是关注全局的服务协调治理框架,它利用 Spring Boot 的开发便利性简化了分布式系统基础设施的开发,提供了如服务注册与发现、负载均衡、配置中心、消息总线、熔断器、数据监控等等组件,都可以用 spring boot 的开发风格做到一键启动部署,所以叫它”全家桶”。

    SpringCloud 的核心组件有哪些?

    (1) Eureka  服务注册与发现中心(服务治理)。

    (2) Ribbon  负载均衡器,服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台。

    (3) Feign  基于动态代理的服务调用工具,可以让我们通过定义接口的方式直接调用其他服务的API。

    (4) Hystrix  用于服务之间远程调用时的容错保护,熔断器就好比家里电路装置的“保险”,当电路断路,那么“保险”装置的“保险丝”就会被熔断,从而达到断开电路的效果,以防止不良后果。而Spring Cloud Hystrix 实现了熔断器,线程隔离等一些列的服务保护功能,当Hystrix判定请求出现故障,会立马对请求做出响应动作,不会继续执行正常请求逻辑,请求线程也不会处于阻塞状态,从而有效防止雪崩效应。

    (5) Zuul  是API网关,是客户端请求的入口,负责鉴权,路由等功能。

    (6) Gateway  是新推出的基于Spring 5的响应式网关。

    (7) Config  用于统一的配置管理。

    (8) Bus  消息总线。

    (9) Sleuth  用于请求链路跟踪。

    (10) Stream  用来为微服务应用构建消息驱动能力。

    电商业务场景分析

    接下来,我将通过一个实际的电商业务场景来剖析一下Spring Cloud中几个核心组件(Eureka、Ribbon、Feign、Hystrix、Zuul......)底层的工作原理。

    业务场景介绍

    电商网站中,当用户提交订单并支付的过程中需要执行如下操作:

    • 将订单状态更新为“已支付”;

    • 同时扣减对应的商品库存;

    • 随后通知仓储中心,进行发货;

    • 以及给用户增加购物积分;

      ...... 支付订单的业务流程结束。

    上述流程中,设计到订单服务库存服务仓储服务积分服务之间的调用,调用过程如下图:

    整体业务架构图如下:

     接下来我将分成多篇文章,围绕上面的电商业务场景来具体分析Spring Cloud微服务架构中,各组件(EurekaRibbon,FeignHystrix,Zuul)发挥的作用和其背后的原理,以及各组件间是如何相互协作的。

     

     

    希望本文章对您有帮助,您的转发、点赞是我的创作动力,十分感谢。

    扫描下方二维码关注我,您会收到更多优质文章推送。

     

    下一篇:没有了