当前位置:首页 > 面试大全 > 程序员经典面试题:高并发系统,一般需要怎么做

程序员经典面试题:高并发系统,一般需要怎么做

4个月前 (06-01)49

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

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

 

分布式

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

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

 

缓存

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

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

广州品牌设计公司https://www.houdianzi.com

异步

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

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

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

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

 

总结

上面就是高并发系统中常用的几个套路,当然,实际开发中我们还有很多要注意的

作者:酷儿q
来源链接:https://www.cnblogs.com/Qooo/p/14047919.html

标签: 面试高并发

“程序员经典面试题:高并发系统,一般需要怎么做” 的相关文章

JAVA华为面试题

JAVA华为面试题

华为Java笔试题: 一、 单项选择题   1.Java是从( )语言改进重新设计。   A.Ada B.C++ C.Pasacal D.BA...

java面试题-声明class

java面试题-声明class

6.下面关于Java程序编写描述正确的一项是? A. Java程序直接利用javac.exe命令就可以直接运行程序 B. 一个Java文件中可以定义有多个clas...

Tomcat高并发设置

Tomcat高并发配置 解决方法 增加tomcat连接数...

4.JVM面试题

帅地的jvm面试题有点深 1.运行时常量池和符号引用得看看。运行时常量池是方法区的一部分,运行时常量池存放:编译期生成的各种字面量和符号引用 2.jdk1.7 字符串常量池从...

Java分布式系统高并发解决方案

Java分布式系统高并发解决方案

对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~...

《OD面试》Java面试题整理

《OD面试》Java面试题整理

一、面试考察点 1 主语言本身 2 数据库 3 算法 4 Spring/SpringMVC/MyBatis...

Python工程师面试汇总

A公司(爬虫工程师) 1.国际惯例,请您做一下自我介绍? 2.说一下你为什么从上一家公司中离职? 3.HTTP你了解吗,有几次握手? 4.说说你在爬取...

python编程题-python编程题库

python编程题-python编程题库

广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 上期题目连接:1000道python...

[python]面试题:交换两数且不使用临时变量

怎么交换两个数且不使用临时变量? py特有方法 a,b = b,a 异或 a ^= b b ^= a...

超实用的Java web面试题

Java web面试题 1、Tomcat的优化经验 答:去掉对web.xml的监视,把jsp提前编辑成Servlet。 有富余物理内存的情况,加大tomcat使用的jv...