本文分为两个部分:

  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)发挥的作用和其背后的原理,以及各组件间是如何相互协作的。

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

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

SpringCloud | 通过电商业务场景让你彻底明白SpringCloud核心组件的底层原理的更多相关文章

  1. 大型电商业务架构 IT大咖说 - 大咖干货,不再错过

    大型电商业务架构 IT大咖说 - 大咖干货,不再错过 http://www.itdks.com/dakashuo/new/dakalive/detail/591

  2. APIshop精选接口助力双十一电商业务

    距离2018年双11的购物盛典已经不到一个月了,各大电商之间的战役已经悄然打响,今年的双11仍会是一场电商鏖战,想必又会打破2017年双11近2540亿的全网成交总额记录. 据统计,去年双11全天共产 ...

  3. B2B 电商业务之 Quote

    商品在网店页面上一般会向买家显示价格.对于B2B, 同一商品对不同的买家可能会展示不同的价格.即使如此,买家仍然可以和卖家再协商价格,最终以不同于网店中显示的价格成交.这个协商价格过程就叫Quote, ...

  4. Java生鲜电商平台-深入理解微服务SpringCloud各个组件的关联与架构

    Java生鲜电商平台-深入理解微服务SpringCloud各个组件的关联与架构 概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留 ...

  5. 一文读懂SpringCloud与Eureka,Feign,Ribbon,Hystrix,Zuul核心组件间的关系

    概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓 ...

  6. 简述SpringCloud底层原理

    目录 一.业务场景介绍 二.Spring Cloud核心组件:Eureka 三.Spring Cloud核心组件:Feign 四.Spring Cloud核心组件:Ribbon 五.Spring Cl ...

  7. 【转】springcloud底层原理

    本文为转载文章,作者:中华石杉,十余年BAT架构经验,倾囊相授.作者微信公众号:石杉的架构笔记(ID:shishan100) 概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的 ...

  8. SpringCloud Alibaba实战(2:电商系统业务分析)

    选用了很常见的电商业务来进行SpringCloud Alibaba的实战. 当然,因为仅仅是为了学习SpringCloud Alibaba,所以对业务进行了大幅度简化,这里只取一个精简版的用户下单业务 ...

  9. 电商、P2P等大型互联网系统包含哪些业务模块?

    01 前言 在互联网飞速发展的时代,各大互联网公司正在进行激烈的竞争,业务模式也在不断的扩张,这种现状使得目前各大公司的架构系统面临着极大的挑战,而对于我们普通的软件开发者而言,如果你仅仅了解过一些关 ...

随机推荐

  1. 【Alpha冲刺阶段】Day 7

    [Alpha冲刺阶段]Scrum Meeting Daily7 1.会议简述 会议开展时间 2020/5/28   8:00-8:30 PM 会议基本内容摘要 讨论合并测试问题 参与讨论人员 项目全体 ...

  2. js原生方法filter实现

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. STL——容器(deque) deque 的大小

    1. deque 的大小 deque.size();              //返回容器中元素的个数 1 #include <iostream> 2 #include <dequ ...

  4. 主从复制直接转换MGR_5.7验证试验

    环境信息 IP port role info 192.168.188.51 4000 node1 master 192.168.188.52 4000 node2 slave1 192.168.188 ...

  5. ORA-29701: unable to connect to Cluster Synchronization Service

    修改主机名后,has无法启动,将has启动之后,尝试ASMCA,出现如图提示: 再尝试登陆asm实例,出现日下提示: [oracle@edgzrip2-+ASM ~]$ sqlplus / as sy ...

  6. react第一单元(简介)

    第一单元(react简介) 课程目标 理解react这个框架在前端开发中的地位 理解react诞生的原因和意义(react是一个用于快速构建前端视图的javaScript库) 理解什么是虚拟dom.原 ...

  7. Spring Data JPA 基础第二篇

    主要调用工具类JpaUtils类 package cn.itcast.utils;import javax.persistence.EntityManager;import javax.persist ...

  8. Flink 反压 浅入浅出

    前言 微信搜[Java3y]关注这个朴实无华的男人,点赞关注是对我最大的支持! 文本已收录至我的GitHub:https://github.com/ZhongFuCheng3y/3y,有300多篇原创 ...

  9. Python中的”黑魔法“与”骚操作“

    本文主要介绍Python的高级特性:列表推导式.迭代器和生成器,是面试中经常会被问到的特性.因为生成器实现了迭代器协议,可由列表推导式来生成,所有,这三个概念作为一章来介绍,是最便于大家理解的,现在看 ...

  10. javascript之原型、原型链

    一.原型: 1. 任何函数都有prototype属性(对象才有属性,函数也是对象): 2. 函数的prototype属性的值是个对象,这个对象就是原型(对象): 3. 作用:通过构造函数创建出来的对象 ...