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 前言 在互联网飞速发展的时代,各大互联网公司正在进行激烈的竞争,业务模式也在不断的扩张,这种现状使得目前各大公司的架构系统面临着极大的挑战,而对于我们普通的软件开发者而言,如果你仅仅了解过一些关 ...
随机推荐
- LoadRunner 多用户并发 登录,上传数据,登出的脚本教程
这里记录 Web/Http 模式,模拟多用户并发进行 : 登录,上传数据,退出登录一整套流程.并发的用户量多少,可自定义.这里不介绍录屏的方式,是自己写脚本去执行的. 1.安装loadRunner ...
- 初识Flask——基于python的web框架
参考教程链接: https://dormousehole.readthedocs.io/en/latest/ (主要)https://www.w3cschool.cn/flask/ 目录: 1.写了一 ...
- 认识 Cargo-Rust构建工具和包管理器
认识 Cargo-Rust构建工具和包管理器 上两篇文章 都有说到 hello world 程序,但是我们如果使用自己创建文件的方式创建项目,一旦文件多了,那得多麻烦,整个项目将变得难以管理.下面我来 ...
- Win10 .net framework 3.5 安装失败 0x80073712 [解决了]
Win10 .net framework 3.5 安装失败 0x80073712 用了各种办法,一直解决不了. 最后用了: 使用 https://www.microsoft.com/zh-cn/sof ...
- AcWing 322. 消木块
由于木块可以由一些木块的消除,使两边相同颜色的合并 所以我们设定一个归并方式,即每个区间记录一下右边的延展性. (等于左边找右边) 设 \(f[i][j][k]\) 为\([i, j]\) 区间,右侧 ...
- webpack与vue使用
项目基本结构目录: index.html <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- nginx介绍1
1.1 nginx 是什么? 是一个高性能的web服务器和反向代理服务器 http://www.nginx.cn/ nginx中文手册 1.2 nginx的优点 1 支持高并发:能支持几万并发连接(特 ...
- css处理文字不换行、换行截断、溢出省略号
1.使文字不换行 white-space: nowrap; 值 描述 normal 默认.空白会被浏览器忽略. pre 空白会被浏览器保留.其行为方式类似 HTML 中的 <pre> 标签 ...
- String概述
String的基本特性 String是字符串,使用一对引号("")包装. String声明是final的,不可被继承. String实现了Serializable接口,表示字符串是 ...
- Python 搜索文件,文件过滤,pathlib模块
1,搜索文件,文件过滤 这里使用:pathlib 模块的 Path.glob(pattern) 方法,该方法可以用来过滤目标文件,以迭代器的形式返回搜索结果. pattern: 通配符:" ...