LiuYang's BLOG

On the way to become a Software Architect


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索

秒杀系统设计06 - 影响性能的因素有哪些?又该如何提高系统的性能?

发表于 2021-07-04 | 分类于 架构设计 | 阅读次数
前面的几篇文章里,我介绍的内容多少都和优化有关:第一篇介绍了一些指导原则;第二篇和第三篇从动静分离和热点数据两个维度,介绍了如何有针对性地对数据进行区分和优化处理;第四篇介绍了在保证实现基本业务功能的前提下,尽量减少和过滤一些无效请求的思路。 这几篇文章既是在讲根据指导原则实现的具体案例,也是在讲如 ...
阅读全文 »

秒杀系统设计05 - 流量削峰这事应该怎么做?

发表于 2021-07-04 | 分类于 架构设计 | 阅读次数
如果你看过秒杀系统的流量监控图的话,你会发现它是一条直线,就在秒杀开始那一秒是一条很直很直的线,这是因为秒杀请求在时间上高度集中于某一特定的时间点。这样一来,就会导致一个特别高的流量峰值,它对资源的消耗是瞬时的。 但是对秒杀这个场景来说,最终能够抢到商品的人数是固定的,也就是说 100 人和 100 ...
阅读全文 »

秒杀系统设计04 - 二八原则:有针对性地处理好系统的“热点数据”

发表于 2021-07-04 | 分类于 架构设计 | 阅读次数
假设你的系统中存储有几十亿上百亿的商品,而每天有千万级的商品被上亿的用户访问,那么肯定有一部分被大量用户访问的热卖商品,这就是我们常说的“热点商品”。 这些热点商品中最极端的例子就是秒杀商品,它们在很短时间内被大量用户执行访问、添加购物车、下单等操作,这些操作我们就称为“热点操作”。那么问题来了:这 ...
阅读全文 »

秒杀系统设计03 - 如何才能做好动静分离?有哪些方案可选?

发表于 2021-07-04 | 分类于 架构设计 | 阅读次数
上一篇文章中,我介绍了秒杀系统在架构上要考虑的几个原则,我估计你很快就会问:“知易行难,这些原则应该怎么应用到系统中呢?”别急,从这篇文章开始,我就会逐一介绍秒杀系统的各个关键环节中涉及的关键技术。 今天我们就先来讨论第一个关键点:数据的动静分离。不知道你之前听过这个解决方案吗?不管你有没有听过,我 ...
阅读全文 »

秒杀系统设计02 - 设计秒杀系统时应该注意的5个架构原则

发表于 2021-07-04 | 分类于 架构设计 | 阅读次数
说起秒杀,我想你肯定不陌生,这两年,从双十一购物到春节抢红包,再到 12306 抢火车票,“秒杀”的场景处处可见。简单来说,秒杀就是在同一个时刻有大量的请求争抢购买同一个商品并完成交易的过程,用技术的行话来说就是大量的并发读和并发写。 不管是哪一门语言,并发都是程序员们最为头疼的部分。同样,对于一个 ...
阅读全文 »

秒杀系统设计01 - 秒杀系统架构设计都有哪些关键点?

发表于 2021-07-04 | 分类于 架构设计 | 阅读次数
你好,我是许令波,花名“君山”。说起来我的职业生涯算是比较简单,2009 年大学毕业后就进入了淘宝,一直工作了七年多。这七年多的时间里,我有幸看到了淘宝业务的快速增长,并且以开发者的身份参与其中。 说实话,作为一名程序员,我的技术能力也在公司业务的快速增长过程中得到了历练,并积累了一些大流量高并发网 ...
阅读全文 »

GO系列 - 数据类型

发表于 2021-06-29 | 分类于 GO | 阅读次数
Go 语言按类别有以下几种数据类型: 序号 类型和描述 1 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数字类型 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支 ...
阅读全文 »

Mysql系列 - 数据类型

发表于 2021-06-29 | 分类于 MySQL | 阅读次数
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 类型 存储字节数 范围(有符号) 范围(无符号) 用途 TINYINT 1 -2^7 ~ 2^7 - 1 0 ~ 2^8 - 1 小整数值 SMALLINT 2 -2^15 ~ 2^15 - ...
阅读全文 »

I/O多路复用

发表于 2021-06-21 | 分类于 Linux/Unix | 阅读次数
什么是IO多路复用多路:多个socket连接或多个文件描述符 复用:复用同一个线程 简单理解:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 IO多路复用解决的问题应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标的输入、中断信号等等事件,再比如w ...
阅读全文 »

Redis系列 - 缓存雪崩、击穿、穿透、预热、更新

发表于 2021-05-23 | 分类于 Redis | 阅读次数
缓存雪崩产生原因在某一时刻缓存出现大规模的key失效,导致大量的请求直接打到了数据库上,进而导致数据库压力巨大,在高并发的情况下,瞬间就会将数据库打死宕机,这时如果运维临时重启数据库,马上又会有新的流量把数据库打死。这就是缓存雪崩。主要有以下两种原因: Redis宕机 缓存的key都在同一时间失效 ...
阅读全文 »
123…11
william

william

删繁就简 一心一意

109 日志
33 分类
155 标签
RSS
GitHub weibo zhihu
友情链接
  • EZLippi-浮生志
© 2021 william
由 Hexo 强力驱动
主题 - NexT.Mist
访问人数 总访问量 次