CSDN|高并发,你真的理解透彻了吗?
【CSDN|高并发,你真的理解透彻了吗?】
本文插图
作者 | 骆俊武来源 | IT人的职场进阶(ID:BestITer)高并发 , 几乎是每个程序员都想拥有的经验 。 原因很简单:随着流量变大 , 会遇到各种各样的技术问题 , 比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等 , 这些问题能推动我们在技术深度上不断精进 。 在过往的面试中 , 如果候选人做过高并发的项目 , 我通常会让对方谈谈对于高并发的理解 , 但是能系统性地回答好此问题的人并不多 , 大概分成这样几类:1、对数据化的指标没有概念:不清楚选择什么样的指标来衡量高并发系统?分不清并发量和QPS , 甚至不知道自己系统的总用户量、活跃用户量 , 平峰和高峰时的QPS和TPS等关键数据 。 2、设计了一些方案 , 但是细节掌握不透彻:讲不出该方案要关注的技术点和可能带来的副作用 。 比如读性能有瓶颈会引入缓存 , 但是忽视了缓存命中率、热点key、数据一致性等问题 。 3、理解片面 , 把高并发设计等同于性能优化:大谈并发编程、多级缓存、异步化、水平扩容 , 却忽视高可用设计、服务治理和运维保障 。 4、掌握大方案 , 却忽视最基本的东西:能讲清楚垂直分层、水平分区、缓存等大思路 , 却没意识去分析数据结构是否合理 , 算法是否高效 , 没想过从最根本的IO和计算两个维度去做细节优化 。 这篇文章 , 我想结合自己的高并发项目经验 , 系统性地总结下高并发需要掌握的知识和实践思路 , 希望对你有所帮助 。 内容分成以下3个部分:
- 如何理解高并发?
- 高并发系统设计的目标是什么?
- 高并发的实践方案有哪些?
如何理解高并发?高并发意味着大流量 , 需要运用技术手段抵抗流量的冲击 , 这些手段好比操作流量 , 能让流量更平稳地被系统所处理 , 带给用户更好的体验 。 我们常见的高并发场景有:淘宝的双11、春运时的抢票、微博大V的热点新闻等 。 除了这些典型事情 , 每秒几十万请求的秒杀系统、每天千万级的订单系统、每天亿级日活的信息流系统等 , 都可以归为高并发 。 很显然 , 上面谈到的高并发场景 , 并发量各不相同 , 那到底多大并发才算高并发呢?1、不能只看数字 , 要看具体的业务场景 。 不能说10W QPS的秒杀是高并发 , 而1W QPS的信息流就不是高并发 。 信息流场景涉及复杂的推荐模型和各种人工策略 , 它的业务逻辑可能比秒杀场景复杂10倍不止 。 因此 , 不在同一个维度 , 没有任何比较意义 。 2、业务都是从0到1做起来的 , 并发量和QPS只是参考指标 , 最重要的是:在业务量逐渐变成原来的10倍、100倍的过程中 , 你是否用到了高并发的处理方法去演进你的系统 , 从架构设计、编码实现、甚至产品方案等维度去预防和解决高并发引起的问题?而不是一味的升级硬件、加机器做水平扩展 。 此外 , 各个高并发场景的业务特点完全不同:有读多写少的信息流场景、有读多写多的交易场景 , 那是否有通用的技术方案解决不同场景的高并发问题呢?我觉得大的思路可以借鉴 , 别人的方案也可以参考 , 但是真正落地过程中 , 细节上还会有无数的坑 。 另外 , 由于软硬件环境、技术栈、以及产品逻辑都没法做到完全一致 , 这些都会导致同样的业务场景 , 就算用相同的技术方案也会面临不同的问题 , 这些坑还得一个个趟 。 因此 , 这篇文章我会将重点放在基础知识、通用思路、和我曾经实践过的有效经验上 , 希望让你对高并发有更深的理解 。
高并发系统设计的目标是什么?先搞清楚高并发系统设计的目标 , 在此基础上再讨论设计方案和实践经验才有意义和针对性 。 2.1 宏观目标高并发绝不意味着只追求高性能 , 这是很多人片面的理解 。 从宏观角度看 , 高并发系统设计的目标有三个:高性能、高可用 , 以及高可扩展 。 1、高性能:性能体现了系统的并行处理能力 , 在有限的硬件投入下 , 提高性能意味着节省成本 。 同时 , 性能也反映了用户体验 , 响应时间分别是100毫秒和1秒 , 给用户的感受是完全不同的 。 2、高可用:表示系统可以正常服务的时间 。 一个全年不停机、无故障;另一个隔三差五出线上事故、宕机 , 用户肯定选择前者 。 另外 , 如果系统只能做到90%可用 , 也会大大拖累业务 。 3、高扩展:表示系统的扩展能力 , 流量高峰时能否在短时间内完成扩容 , 更平稳地承接峰值流量 , 比如双11活动、明星离婚等热点事件 。
推荐阅读
- CSDN|由 Apache 说开,中国开源项目已经走向世界!
- CSDN|软件对于英特尔意味着什么?
- CSDN|中国首家苹果零售店重开业,苹果CEO库克发文揭幕;“携号转网”服务用户破千万;GitHub 完成北极源代码存档|极客头条
- 智能机器人|快商通智能客服云平台荣获CSDN“AI优秀案例实践奖”
- CSDN|万亿美元软件浪潮来临,开发者是核心!
- 行业互联网|快商通智能客服云平台荣获CSDN“AI优秀案例实践奖”
- CSDN|OpenInfra Days China 2020 官网正式上线,含免费注册通道!
- CSDN|实战 | 对抗外部威胁防护和勒索病毒,大厂怎么做?
- CSDN|它估值 25 亿!被马云领投,是华为“老战友”,网友:也许股价能超茅台!
- CSDN|刺激!一行代码即可导出所有浏览记录