加入收藏 | 设为首页 | 会员中心 | 我要投稿 长春站长网 (https://www.0431zz.com.cn/)- 媒体智能、开发者工具、运维、低代码、办公协同!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

程序员经典面试题,高并发系统

发布时间:2021-03-21 10:44:31 所属栏目:外闻 来源:互联网
导读:提升并发的好的办法,便是提升硬件。举个大家都熟悉的例子,十年前的诺基亚手机,一般我们只能简单的挂一个QQ后台,多干几个事情,就不行了。五年前,我们用的安卓手机能开十来个任务,切换也比较流畅了,而今天,刚刚发布的苹果iPhone11,性能就更加强劲。

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

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

缓存

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

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

异步

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

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

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

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

(编辑:长春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读