SpringCloud | 通过电商业务场景让你彻底明白SpringCloud核心组件的底层原理
本文分为两个部分:
Spring Cloud"全家桶"简单介绍。
通过实际电商业务场景,让你彻底明白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微服务架构中,各组件(Eureka,Ribbon,Feign,Hystrix,Zuul)发挥的作用和其背后的原理,以及各组件间是如何相互协作的。
希望本文章对您有帮助,您的转发、点赞是我的创作动力,十分感谢。
扫描下方二维码关注我,您会收到更多优质文章推送。

SpringCloud | 通过电商业务场景让你彻底明白SpringCloud核心组件的底层原理的更多相关文章
- 大型电商业务架构 IT大咖说 - 大咖干货,不再错过
大型电商业务架构 IT大咖说 - 大咖干货,不再错过 http://www.itdks.com/dakashuo/new/dakalive/detail/591
- APIshop精选接口助力双十一电商业务
距离2018年双11的购物盛典已经不到一个月了,各大电商之间的战役已经悄然打响,今年的双11仍会是一场电商鏖战,想必又会打破2017年双11近2540亿的全网成交总额记录. 据统计,去年双11全天共产 ...
- B2B 电商业务之 Quote
商品在网店页面上一般会向买家显示价格.对于B2B, 同一商品对不同的买家可能会展示不同的价格.即使如此,买家仍然可以和卖家再协商价格,最终以不同于网店中显示的价格成交.这个协商价格过程就叫Quote, ...
- Java生鲜电商平台-深入理解微服务SpringCloud各个组件的关联与架构
Java生鲜电商平台-深入理解微服务SpringCloud各个组件的关联与架构 概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留 ...
- 一文读懂SpringCloud与Eureka,Feign,Ribbon,Hystrix,Zuul核心组件间的关系
概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓 ...
- 简述SpringCloud底层原理
目录 一.业务场景介绍 二.Spring Cloud核心组件:Eureka 三.Spring Cloud核心组件:Feign 四.Spring Cloud核心组件:Ribbon 五.Spring Cl ...
- 【转】springcloud底层原理
本文为转载文章,作者:中华石杉,十余年BAT架构经验,倾囊相授.作者微信公众号:石杉的架构笔记(ID:shishan100) 概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的 ...
- SpringCloud Alibaba实战(2:电商系统业务分析)
选用了很常见的电商业务来进行SpringCloud Alibaba的实战. 当然,因为仅仅是为了学习SpringCloud Alibaba,所以对业务进行了大幅度简化,这里只取一个精简版的用户下单业务 ...
- 电商、P2P等大型互联网系统包含哪些业务模块?
01 前言 在互联网飞速发展的时代,各大互联网公司正在进行激烈的竞争,业务模式也在不断的扩张,这种现状使得目前各大公司的架构系统面临着极大的挑战,而对于我们普通的软件开发者而言,如果你仅仅了解过一些关 ...
随机推荐
- Jmeter录制脚本-BadBoy
录制脚本方式: 1)Badboy录制Jmter脚本 2)Jmter代理服务录制脚本 方式一:Badboy录制脚本 安装Badboy 录制脚本 1.双击Badboy 2.输入URL 3.点击" ...
- ATT&CK 实战 - 红日安全 vulnstack (二) 环境部署(劝退水文)
靶机下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/ 靶场简述 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习.视频教程.博 ...
- Elements-of-Python_03_LanguageFeature
(内容包括Python语法概述,流程控制,条件表达式) 1 Python语法 1.1 Python的特点 Python是一种完全面向对象的.解释性的.可移植的.开源的脚本编程高级语言,具有丰富的库,允 ...
- 步步为营,打造CQUILib UI框架库
步步为营,打造CQUILib UI框架库 UI框架包括如下几个方面:: 丰富的UI控件 窗口管理 主题 多语言 托盘 视图与业务解耦 登录框效果如下:: 提示框效果如下:: 后续讲解如何步步为营,打造 ...
- 在Chrome、Firefox等高版本浏览器中实现低延迟播放海康、大华RTSP
一.背景 现在到处是摄像头的时代,随着带宽的不断提速和智能手机的普及催生出火热的网络直播行业,新冠病毒的大流行又使网络视频会议系统成为商务会议的必然选择,因此RTSP实时视频流播放及处理不再局限于安防 ...
- Docker(七): 安装Loki
洛基(Loki),是北欧神话中的恶作剧和谎言之神,亦是火神.他是巨人法布提(Farbauti)和女巨人劳菲(Laufey)的儿子,阿萨神族主神奥丁(Odin)的义兄弟,虽然他比奥丁要年轻许多.但他的个 ...
- C++ string常见函数总结
基础概念 对照功能列表:不能直接回答的再去看相应解析说明. begin 得到指向字符串开头的 Iterator end 得到指向字符串结尾的 Iterator rbegin 得到指向反向字符串开头的 ...
- 【程序包管理】篇章2:rpm程序包来源合法和完整性验正
来源合法性验正: 数字签名 私钥签名完整性 哈希 注意: 1.如果是网站下载的程序包的话,没有公钥,就无法进行来源合法性验证,所以最好使用系统自带的rpm程序包或去可靠的网站下载程序包.[如 ...
- 【探索之路】机器人篇(1)-ROS-mwRobot开篇
机器人的定义 首先,什么才是机器人?机器人是不是必须和人一样的外形?我们先看一看维基百科给机器人的定义: 由上可见,机器人并不是和人一样的外形,而是可以模拟人类行为或者思想再或者是模拟其他生物的机械. ...
- 总结JAVA语言的十大特性
JAVA语言的十大特性 1.简单 Java语言的语法简单明了,容易掌握从,而且Java语言是纯面向对象的语言. Java语言的语法规则和C++类似,从某种意义上来讲,Java原因是由C语言和C++语言 ...