15个高并发系统计划锦囊,创建并发思维!
前言大家好,记得很久之前,去面试过字节跳动。被三面的面试官问了一道场景计划标题:怎样计划一个高并发系统。当时我回答得比较粗糙,最近追念起来,所以整理了计划高并发系统的15个锦囊,相信大家看完会有资助的。
https://i-blog.csdnimg.cn/blog_migrate/df7a3872f892d77fbef472abf77ffe9a.png
怎样理解高并发系统
所谓计划高并发系统,就是计划一个系统,保证它团体可用的同时,能够处理很高的并发用户哀求,能够承受很大的流量打击。
我们要计划高并发的系统,那就需要处理好一些常见的系统瓶颈问题,如内存不足、磁盘空间不足,连接数不够,网络宽带不够等等,以应对突发的流量洪峰。
1. 分而治之,横向扩展
如果你只部署一个应用,只部署一台服务器,那抗住的流量哀求是非常有限的。并且,单体的应用,有单点的风险,如果它挂了,那服务就不可用了。
因此,计划一个高并发系统,我们可以分而治之,横向扩展。也就是说,采用分布式部署的方式,部署多台服务器,把流量分流开,让每个服务器都负担一部分的并发和流量,提升团体系统的并发本领。
2. 微服务拆分(系统拆分)
要提高系统的吞吐,提高系统的处理并发哀求的本领。除了采用分布式部署的方式外,还可以做微服务拆分,这样就可以达到分摊哀求流量的目的,提高了并发本领。
所谓的微服务拆分,其实就是把一个单体的应用,按功能单一性,拆分为多个服务模块。好比一个电商系统,拆分为用户系统、订单系统、商品系统等等。
https://i-blog.csdnimg.cn/blog_migrate/9d538229c23ea5c17bddf586b5b3201f.png
3. 分库分表
当业务量暴增的话,MySQL单机磁盘容量会撑爆。并且,我们知道数据库连接数是有限的。在高并发的场景下,大量哀求访问数据库,MySQL单机是扛不住的!高并发场景下,会出现too many connections报错。
所以高并发的系统,需要考虑拆分为多个数据库,来抗住高并发的毒打。而假如你的单表数据量非常大,存储和查询的性能就会碰到瓶颈了,如果你做了很多优化之后还是无法提升服从的时候,就需要考虑做分表了。一样平常千万级别数据量,就需要分表,每个表的数据量少一点,提升SQL查询性能。
劈面试官问要求你计划一个高并发系统的时候,一样平常都要说到分库分表这个点。
之前写了分库分表15连问,为了应对面试官追问到底,大家可以趁便复习一下分库分表的相干经典面试题哈,可以看我这篇文章:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]