网易高并发优化 | 公开课-02
网易严选中的高并发优化
(一)单机系统缓存优化
1.背景导入
- 在单机情况下,CSD模型如果出现慢查询一般会把问题归结到数据库
CSD模型:
- 实际操作发现:当有2KW级别数据层查询是,统计总行数约1s,根据索引列查询,约5ms左右,如果没有索引查询约4s左右。
- 以此来看数据库并不是常规的理解,慢的不可以接受。
2.场景
- 问题:数据库在单个SQL执行时,相对速度确实是可以满足大多数业务的。但怕大批量请求,其QPS并发能力不行
- 如图:数据库支持的QPS/TPS数量
- 解决:引入如此类redis缓存中间件,解决QPS能力低下问题
3.缓存使用
- redis限流自旋:在第5步时,只放行一小部分请求查询数据库,这样redis会增加一部分数据,大部分请求从redis中能查询到。(2:8原则,80%的人共用20%的数据)
缓存和数据库一致性更新原则
- 常见缓存访问模式:(cache-aside 本地缓存)
直接如此无法保证数据一致性:解决1:加入一层中间件
利用一种id绑定机制,数据库更新时,统一数据访问服务这里通过id绑定,将待更新数据的id打开自旋锁,等数据库更新完毕,
- 常见缓存访问模式:更新模式
- 加入redis后QTS效率提升:
“延缓记账”:抢红包 并发量每秒很高 不可能直接和数据库交互,数据库QTS太小,此时利用MQ/Redis
(二)微服务间高并发优化
1.背景
- A服务:自己的系统,并发可达到单机百万,但A请求B服务
- B服务:其他人的系统,但并发只有几万
- 如何在A请求B的情况下 让A服务性能能够达到真实百万?
2.解决
- 给A加缓存吗?
- 答:微服务之间是不该加入缓存此种直接缓存目标服务数据【涉及到缓存更新问题】
- 在没有任何优化时,单机系统跑,5K个并发,完成请求耗时,约4s,QPS平均,1250.
- 使用请求合并优化后,单系统跑5K个并发,完成请求耗时约,0.16s,QPS约31250,提升倍数约:25倍
请求合并
- 类比:餐厅点餐后会合并多份相同的 交给后厨用大锅一锅出好几份
网易高并发优化 | 公开课-02相关推荐
- 每秒上千订单场景下的分布式锁高并发优化实践!
本文授权转自石杉的架构笔记 背景引入 首先,我们一起来看看这个问题的背景? 前段时间有个朋友在外面面试,然后有一天找我聊说:有一个国内不错的电商公司,面试官给他出了一个场景题: 假如下单时,用分布式锁 ...
- Java架构-每秒上千订单场景下的分布式锁高并发优化实践!
"上一篇文章我们聊了聊Redisson这个开源框架对Redis分布式锁的实现原理,如果有不了解的兄弟可以看一下:<拜托,面试请不要再问我Redis分布式锁实现原理>. 今天就给大 ...
- 抽奖活动的高可用、高并发优化
这几年工作中做过不少营销活动,这里以抽奖活动为例,讨论一下如何设计出一个高可用.高并发的营销系统. 高可用.高并发架构的核心是分流和限流.系统架构时,应根据每一种营销活动的场景与特性,制定不同的分流. ...
- Seckill系统高并发优化
绝大多数秒杀系统都需要实现高并发,这样就必须在原来的项目基础上进行优化.简单的优化很有可能就会很大地提高系统的并发性能,但是这些优化往往是系统开发人员很少注意的,或者直接被人们忽略.因此要成为一个出色 ...
- Java高并发秒杀API(四)之高并发优化
Java高并发秒杀API(四)之高并发优化 1. 高并发优化分析 关于并发 并发性上不去是因为当多个线程同时访问一行数据时,产生了事务,因此产生写锁,每当一个获取了事务的线程把锁释放,另一个排队线程才 ...
- MySQL的性能优化及自动化运维实践与Mysql高并发优化
首先,我们来看看DBA的具体工作,我觉得 DBA 真的很忙:备份和恢复.监控状态.集群搭建与扩容.数据迁移和高可用,这是我们 DBA 的功能. 了解这些功能以后要对体系结构有更加深入的了解,你不知道怎 ...
- 用分布式锁来防止库存超卖,但是是每秒上千订单的高并发场景,如何对分布式锁进行高并发优化来应对这个场景?
用分布式锁来防止库存超卖,但是是每秒上千订单的高并发场景,如何对分布式锁进行高并发优化来应对这个场景? 转载 codeing_doc 最后发布于2018-11-23 09:44:41 阅读数 1073 ...
- [php]如何做到高并发优化
在实际的开发过程中我们遇到过各种各样的活动,但像用户流量较大的平台就需要考虑高并发的问题,但是如何去解决呢?我总结了几种解决方案,欢迎大家指正! 一.什么是PV/UV/QPS? PV:页面访问量,即P ...
- 5000并发的qps是多少_高并发初体验记录-02
前言 这半个多月完成了这次活动的业务代码开发和测试,至于性能调优对我而言近乎玄学.总结记录,以备参考.如有错误,欢迎指正.不过其实大佬不用浪费时间看这篇低质量的流水账了. 实测过后,一个月前老板给我说 ...
最新文章
- spfa(还不懂--)
- 删除顺序表中所有的的重复数据
- [POI2007]ZAP-Queries [HAOI2011]Problem b 莫比乌斯反演
- C/C++学习之路: C++对C的扩展
- OpenCL用于计算机领域的13个经典案例
- Windows Server 2012学习
- paip.gui控件tabs控件加载内容的原理以及easyui最佳实现
- maven 手动构建项目
- 那些长期单身的人,到底在想什么?
- ubuntu shortcuts
- idea中配置mysql插件,使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置
- 9102年,曝光这几个高质量的公众号,年薪7位数!
- Java中的==符号与equals()的使用(测试两个变量是否相等)
- cnn程序流程图_GitHub - suqcnn/vue: vue源码逐行注释分析+40多m的vue源码程序流程图思维导图 (diff部分待后续更新)...
- 非学习的点云配准方法汇总
- 了解Minimax算法
- Python的繁体简体转换
- matlab 条件方程组的解,solve 时解方程组的限制条件问题
- xxxxxxxxxxxxxx
- 获取linkedin上指定公司下的职员信息
热门文章
- 论文中的误差图绘制(图中图)
- ubuntu-桌面菜单栏、任务栏、标题栏都不见了-解决办法
- Win10安装MySQL5.7(图文详解)
- 小甲鱼java视频_b站有哪些好的java视频?
- Pow,Pos,Dpos共识机制比较
- SSM Generator生成mapper中xml文件:未能解析映射资源:“文件嵌套异常
- php如何判断是ajax,php如何判断是ajax
- python指定返回类型_如何在python中指定方法返回类型列表 - python
- 怎么提前体验鸿蒙,鸿蒙OS手机版明天发布,开发者提前体验,上手操作毫无难度...
- python保存后不运行_Python后台执行不启用缓存