专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 详解高并发

详解高并发

更新时间:2021-02-14 10:39:52 来源:星辉 浏览1552次

其实【高并发】的意思和【并发】的意思不止是差了一个“高”字,而是个宽泛得多的概念。【高并发】是指可以让软件系统在一段时间内能够处理大量的请求。比如每秒钟可以完成10万个请求。这是互联网系统的一个重要的特征。

不像【并发】说的是“处理”,【并行】说的是“执行”,【高并发】说的是最终效果。只要能达到效果,不管怎么实现都行。因此,极端一点【高并发】甚至并不一定需要【并行】,只要处理速度快的足够满足要求就可以。如启动一个nginx的【OS进程】,它只能用到一个CPU核心,也就不可能【并行】。但是他如果能每秒能处理10万个请求,而业务需求只要求8万个请求就可以了,那么这个单进程的nginx本身就算【高并发】了。

当然,现实当中【高并发】的要求会相当“高“(双十一都刷过吧),说的也是完整的业务流程请求,而非简单的HTTP转发。这样的系统大量应用各种【并发】的集中人类智慧的各种方法,并尽可能的【并行】。

除了【并发】和【并行】,【高并发】还需要:

数据表普遍被分库分表,否则单机放不下,或者查询性能不足

解决分布式事务

因为机器都可能坏,为了保证少数机器坏掉不会影响处理的性能,必须引入HA机制

因为系统都有极限,超过极限响应能力就会急剧下降。因此必须引入限流的方案来保护系统

这么复杂的系统会涉及到N个service,N个存储,N个队列…… 这些资源的管理又成为了新的问题,这又需要对集群和服务做管理

这么多服务,肯定要解决分布式的Tracing和报警问题

……

当面试的时候提起【高并发】,大概率是希望面试者聊聊上面这些主题。但请特别特别留意,不同领域的【高并发】实际的意思(怎么算“高”,如何达成,哪些问题是关键问题)会非常不同。电商的高并发,抖音的高并发,12306卖火车票的高并发,基金交易系统的高并发,海量数据处理的高并发,这些问题其实都很不同。所以我很建议每次都讨论具体的问题,而非泛泛谈论【高并发】这个名词。

拓展一下,从商业上考虑【高并发】,其实际的意思是“用尽可能少的资源实现足够满足需要的并发请求数量,以形成竞争优势。能用有限资源短时间内处理大量请求,也就意味着:

1)单个请求处理成本的降低。比如传统企业处理一单交易成本是10元,而互联网企业压低到了0.1元。这就形成了“规模经济下的低成本结构“,是一种碾压式的竞争优势。

2)提高转化效率。为了获客,市场部门都会拼命做如做拼团、发红包的工作。假设两家公司花同样的预算做获客。公司A的下单系统只能支持1000单/s;而B公司能做到成本不比A公司多很多的情况下实现10000单/s,那么过一段时间,A公司将被彻底打垮。如果你是老板,并且对用户需求很有信息,你会玩命砸技术投入,避免系统成为商业闭环的瓶颈(如果发生了,真坑啊)。

这也就是为啥有些公司突然火起来,然后玩命招技术人员,我们的机会也变得多了起来的原因。在本站的多线程教程里,详细为大家讲解了各种高并发的知识,想提升自己的小伙伴千万不要错过哦!

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>