程序员经典面试题,高并发系统,一般需要怎么做
创始人
2025-03-18 10:01:15
0次

 高并发系统总是那么令人着迷,比如说双十一的抢购,比如说12306的抢票,都是非常经典的高并发的例子,也是非常大的挑战。对于开发这样系统的人来说,最怕的就是突发的流量,就好比河流突发大水而引发洪涝灾害一样,突发的流量也会引起服务器奔溃。

[[277396]]

为了应对这些突发的流量,我们总需要做点什么?今天我们来介绍一下高并发的几个套路。

分布式

提升并发的好的办法,便是提升硬件。举个大家都熟悉的例子,十年前的诺基亚手机,一般我们只能简单的挂一个QQ后台,多干几个事情,就不行了。五年前,我们用的安卓手机能开十来个任务,切换也比较流畅了,而今天,刚刚发布的苹果iPhone11,性能就更加强劲。但是我们也发现,这两年,好像手机的性能没有飞速发展了。无论是苹果、高通还是华为,或者是PC芯片的厂商因特尔或者AMD,都开始慢慢在挤牙膏了。

这其实是受到物理定理的制约,晶体管不可能无限小,无限集成,硬件不可能一直保持突飞猛进。并且,越是高端的机器,成本越贵,并且这个价格很可能是指数级增长的。谷歌公司在很早之前就发现,于是开始组建分布式系统,使用一个集群而不是一台机器来完成相关的工作,凭借这一点,谷歌在互联网早期迅速发展。

缓存

缓存,是解决高并发问题的另一个有效手段。因为磁盘的读写速度较慢,所以我们常常用读写速度的更高的内存来防止流量到达磁盘。

一般我们会把一些静态资源都放在缓存上,或者将一些动态的又不怎么重要的更新频率可以接受延迟的放在缓存里。举个例子,音乐服务器,我们可以把专辑的图片、音乐文件这些放在CDN等缓存服务上,对于一些热门的评论列表,我们也可以进行缓存,一定时间才刷新一次,可以大大减少磁盘的压力。当然,有时候有缓存还远远不够,例如前几天周杰伦的新专辑照样打垮了QQ音乐的服务器。

异步

即便是有缓存,有些请求仍然没有办法快速的相应。

有些请求是写请求,举个例子,沙茶敏写了一份电子邮件,群发了1万个人,群发的人数非常多,服务器要往很多人的信箱投递消息,假设一个人需要0.1秒,1万个人也要1000秒。虽然可以并发到多台机器解决,但是非常浪费资源,如果很多人这么做,系统压力非常大。

另外的情况,是有可能某个系统处理非常慢,这个系统既有可能是业务非常复杂,也有可能是第三方系统,举个例子,沙茶敏从支付宝提取一笔资金到某小银行,因为技术原因,某个小银行每次接口访问都要10秒钟,不可能在转账页面卡10秒,所以支付宝先告诉用户转账成功了,然后异步进行。

异步,我们通常采用了异步队列,异步的好处除了削峰,限流,提升用户体验,还能很好的保护系统。

总结

上面就是高并发系统中常用的几个套路,当然,实际开发中我们还有很多要注意的。欢迎大家关注我,共同学习,共同进步。大家的支持是我继续唠嗑的动力。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...