![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统设计
系统设计
斜月&三星
这个作者很懒,什么都没留下…
展开
-
7. 秒杀系统-- “减库存” 设计的核心逻辑
减库存的几种方式总结来说,减库存操作一般有如下几个方式:下单减库存,即当买家下单后,在商品的总库存中减去买家购买数量。下单减库存是最简单的减库存方式,也是控制最精确的一种,下单时直接通过数据库的事务机制控制商品库存,这样一定不会出现超卖的情况。但是你要知道,有些人下完单可能并不会付款。 付款减库存,即买家下单后,并不立即减库存,而是等到有用户付款后才真正减库存,否则库存一直保留给其他买家...原创 2020-02-17 16:14:57 · 682 阅读 · 0 评论 -
8. 秒杀系统--设计兜底方案
高可用建设的着手点 说到系统的高可用建设,它其实是一个系统工程,需要考虑到系统建设的各个阶段,也就是说它其实贯穿了系统建设的整个生命周期,如下图所示: 具体来说,系统的高可用建设涉及架构阶段、编码阶段、测试阶段、发布阶段、运行阶段,以及故障发生时。架构阶段:架构阶段主要考虑系统的可扩展性和容错性,要避免系统出现单点问题。例如多机房单元化部署,即使某个城市...原创 2020-02-17 16:29:21 · 766 阅读 · 0 评论 -
6. 秒杀系统-影响性能的因素和提高系统性能的方法
影响性能的因素 “性能”,服务设备不同对性能的定义也是不一样的,例如 CPU 主要看主频、磁盘主要看 IOPS(Input/Output Operations Per Second,即每秒进行读写操作的次数)。我们讨论的主要是系统服务端性能,一般用 QPS(Query Per Second,每秒请求数)来衡量,还有一个影响和 QPS 也息息相关,那就是响应时间(Response T...原创 2020-02-15 21:08:39 · 413 阅读 · 0 评论 -
5. 秒杀系统--流量削峰
在秒杀系统的流量监控图中,它是一条直线,但是在秒杀开始那一秒是一条很直很直的线,这是因为秒杀请求在时间上高度集中于某一特定的时间点。这样一来,就会导致一个特别高的流量峰值,它对资源的消耗是瞬时的。但是对秒杀这个场景来说,最终能够抢到商品的人数是固定的,也就是说 100 人和 10000 人发起请求的结果都是一样的,并发度越高,无效请求也越多。但是从业务上来说,秒杀活动是希望更多的人来...原创 2020-02-15 20:42:19 · 261 阅读 · 0 评论 -
4. 秒杀系统--处理系统的“热点数据”
假设你的系统中存储有几十亿上百亿的商品,而每天有千万级的商品被上亿的用户访问,那么肯定有一部分被大量用户访问的热卖商品,这就是我们常说的“热点商品”。这些热点商品中最极端的例子就是秒杀商品,它们在很短时间内被大量用户执行访问、添加购物车、下单等操作,这些操作我们就称为“热点操作”。为什么要关注热点?因为热点会对系统产生一系列的影响。首先,热点请求会大量占用服务器处理资源,...原创 2020-02-14 20:28:48 · 520 阅读 · 0 评论 -
3. 秒杀系统--动静分离
动静分离的目的就是实现系统的 “快”,抽象来讲就只有两点:一是提高单次请求的效率;二是减少没必要的请求。所谓“动静分离”,其实就是把用户请求的数据(如 HTML 页面)划分为“动态数据”和“静态数据”。简单来说,“动态数据”和“静态数据”的主要区别就是看页面中输出的数据是否和 URL、浏览者、时间、地域相关,以及是否含有 Cookie 等私密数据。比如说:很多媒体类的网站,某...原创 2020-02-13 21:12:00 · 308 阅读 · 0 评论 -
2. 秒杀系统---不同场景下的不同架构案例
如果你想快速搭建一个简单的秒杀系统,只需要把你的商品购买页面增加一个“定时上架”功能,仅在秒杀开始时才让用户看到购买按钮,当商品的库存卖完了也就结束了。这就是当时第一个版本的秒杀系统实现方式。但随着请求量的加大(比如从 1w/s 到了 10w/s 的量级),这个简单的架构很快就遇到了瓶颈,因此需要做架构改造来提升系统性能。这些架构改造包括:把秒杀系统独立出来单独打造一个系统,这...原创 2020-02-10 20:50:05 · 369 阅读 · 0 评论 -
1. 秒杀系统介绍
简单来说,秒杀就是在同一个时刻有大量的请求争抢购买同一个商品并完成交易的过程,用技术的行话来说就是大量的并发读和并发写。秒杀系统本质上就是一个满足大并发、高性能和高可用的分布式系统1. 秒杀系统架构设计的关键点 首先需要从高维度出发,从整体上思考问题。在我看来,秒杀其实主要解决两个问题,一个是并发读,一个是并发写。并发读的核心优化理念是尽量减少用户到服务端来“读...原创 2020-02-13 20:05:05 · 499 阅读 · 0 评论 -
单点登录系统的实现2
一、共享Session 共享Session可谓是实现单点登录最直接、最简单的方式。将用户认证信息保存于Session中,即以Session内存储的值为用户凭证,这在单个站点内使用是很正常也很容易实现的,而在用户验证、用户信息管理与业务应用分离的场景下即会遇到单点登录的问题,在应用体系简单,子系统很少的情况下,可以考虑采用Session共享的方法来处理这个问题。 ...原创 2020-02-08 21:10:16 · 177 阅读 · 0 评论 -
单点登录系统的实现1
一、什么是单点登录? 单点登录的英文名叫做:Single Sign On(简称SSO)。在初学/以前的时候,一般我们就单系统,所有的功能都在同一个系统上。为了合理利用资源和降低耦合性,于是把单系统拆分成多个子系统。简单来说,单点登录就是在多个系统中,用户只需一次登录,各个系统即可感知该用户已经登录。 二、多系统登录的问题...原创 2020-02-08 20:51:41 · 212 阅读 · 0 评论