内容简介:一致性 、高可用、高并发情况下的高性能
点击蓝色“ 乔志勇笔记 ”关注我哟
加个“ 星标 ”,第一时间获取推送的文章哦!
一、设计要点
一致性 、高可用、高并发情况下的高性能
二、设计原则
1、数据要尽量少
2、请求数尽量少
3、路径要尽量短
4、依赖要尽量少
5、不要有单点
三、业务上的实践
1、定时上架 "购买按钮"
2、增加答题秒杀
3、减少不必要的装饰功能
4、刷新抢宝 时 刷新指定部分页面
5、采用发送优惠券,抽奖活动,分散流量
四、技术上的实践
(1) 动静分离
1)数据分离:
动态数据:个性化的数据,时间或地域数据
2) 考虑要点 :
1、静态数据的储存
实体机单机部署
统一的cache 层
上cdn
2、动静结合方式
服务端ESI 方案 :freemarker 适用于普通的商品推荐
客户端CSI 方案 : 异步ajax 适用于秒杀推荐
(2)热点数据
1、发现热点数据
静态、动态发现
2、处理热点数据
实时缓存,业务隔离,请求加队列限制
(3) 流量消峰
1、排队
2、答题
3、分层过滤
(4) 一致性的减库存
1)下单减库存 逻辑简单 ,性能更好
2)没有复杂的 SKU 库存和总库存这种联动关系 ,可以用 redis 减库存
3)针对InnoDB锁竞争,可以优化
1、应用层做排队
2、数据库层做排队
(5)高可用的兜底方案(层级递增)
1、降级
2、限流
基于排队策略:
客户端 线程数限流,设置请求超时时间
服务端基于QPS做限流保护
3、拒绝服务
防止系统宕机:
在最前端的 Nginx 上设置过载保护,当机器负载达到某个值时直接拒绝 HTTP 请求并返回 503 错误码,在 Java 层同样也可以设计过载保护
参考:许令波的设计秒杀系统
参考实践代码:https://gitee.com/QiaoZhiYong/spring-boot-seckill
https://github.com/qiaozhiyong/miaosha
近期文章:
如果你喜欢本文
请长按二维码,关注 乔志勇笔记
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 系统设计之系统建设的目的
- 系统设计之路:如何设计一个 URL 短链服务
- 基于电商中台架构-商品系统设计(二):类目设计
- 从Git设计原理到业务系统设计与开发
- 作业收缴系统设计手册(自写开源小系统)
- Git设计原理对业务系统设计与开发的启示
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
机器学习及其应用2007
周志华 编 / 清华大学 / 2007-10 / 37.00元
机器学习是人工智能的一个核心研究领域,也是近年来计算机科学中最活跃的研究分支之一。目前,机器学习技术不仅在计算机科学的众多领域中大显身手,还成为一些交叉学科的重要支撑技术。本书邀请相关领域的专家撰文,以综述的形式介绍机器学习中一些领域的研究进展。全书共分13章,内容涉及高维数据降维、特征选择、支持向量机、聚类、强化学习、半监督学习、复杂网络、异构数据、商空间、距离度量以及机器学习在自然语言处理中的......一起来看看 《机器学习及其应用2007》 这本书的介绍吧!