• 欢迎访问 优知学院 请加入我们的架构交流分享群优知学院-架构师进阶
  • 坚持原创分享BAT面试+架构+CTO进阶干货!

如何学习获得高并发的经验?

Java 优知学院陈睿 2年前 (2017-10-17) 1337次浏览 0个评论 扫描二维码

如何学习获得高并发的经验?

读者群的朋友大家都比较关注高并发,原因很简单,想去BAT这样的大公司,你必须要有高并发的经验。

今天普及下高并发的知识,希望大家对高并发有一个正确的认识。

什么是高并发

高并发是指在同一个时间点,有很多用户同时访问URL地址,比如:淘宝的双11、双12,就会产生高并发。又如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击。

专业的角度什么是高并发

高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。

高并发相关常用的一些名词,高并发用户数,响应时间(Response Time),吞吐量(Throughput),TPS(Transactions Per Second)每秒事务数,QPS(Query Per Second)每秒查询率等。

响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。

并发用户数:指的是现实系统中操作业务的用户,例如在淘宝双11疯狂抢单,同时在线量一定程度上代表了系统的并发用户数。

在性能测试工具中,一般称为虚拟用户数(Virutal User),注意并发用户数跟注册用户数、在线用户数有很大差别的,并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器 不产生压力,注册用户数一般指的是数据库中存在的用户数。

吞吐量:单位时间内处理的请求数量。

TPS:是Transactions Per Second的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

Qps基本类似于Tps,但是不同的是,对于一个页面的一次访问,形成一个Tps;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“Qps”之中。

一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。

在做性能压力测试的时候,最重要的一个数据就是TPS,TPS可以通过PV进行换算,PV->TPS转换模型,具体换算发请参考淘宝性能测试白皮书里面就有非常详细的描述。

高并发解决方案

如何学习获得高并发的经验?

1、服务器架构

业务从发展的初期到逐渐成熟,服务器架构也是从相对单一到集群,再到分布式服务。

一个可以支持高并发的服务少不了好的服务器架构,需要有均衡负载,数据库需要主从集群,NoSQL缓存需要主从集群,静态文件需要上传CDN,这些都是能让业务程序流畅运行的强大后盾。

服务器这块多是需要运维人员来配合搭建,具体我就不多说了,点到为止。

大致需要用到的服务器架构如下:

服务器

均衡负载(如:nginx,阿里云SLB)

资源监控

分布式

数据库

主从分离,集群

DBA 表优化,索引优化等

分布式

NoSQL

Redis

主从分离,集群

MongoDB

主从分离,集群

memcache

主从分离,集群

消息队列

秒杀、秒抢等活动业务,用户在瞬间涌入产生高并发请求,主要解决异步消息

CDN

以下静态资源需要转移到CDN基站

html

css

js

image

等等..

高并发学习经验

要想获得高并发学习经验,无非就两条:学习和实践。

学习,首先要正确了解高并发的知识点,比如上面我提到的这些内容。

其次,如果没有机会实践,完全可以自己模拟这样的业务场景,利用并发测试工具。

测试高并发可以使用第三方服务器或者自己测试服务器,利用测试工具进行并发请求测试,分析测试数据得到可以支撑并发数量的评估,这个可以作为一个预警参考,俗话说知己自彼百战不殆。

第三方服务:

阿里云性能测试

并发测试工具:

Apache JMeter

LoadRunner性能负载测试等。

如何学习获得高并发的经验?

高并发的内容今天就写到着,高并发相关的架构演变过程,还可以参考我的另外一篇文章:最具决定性的淘宝架构演变,里面具体涉及到的网站架构演变过程,看完后你对高并发会有更好的认识。

作者:陈睿|mikechen(优知学院发起人youzhixueyuan.com)是互联网产品技术总监,拥有10以上的互联网产品&技术经验,曾先后历任淘宝架构师,百度研发经理,携程定制旅游CTO,擅长java,高并发架构,敏捷开发,团队管理,产品策划,产品运营数据以及行业分析,优知学院IT人的进阶站,提供系统的互联网产品&技术的入门指南以及进阶干货。


本文标题:如何学习获得高并发的经验?
转载请保留页面地址:https://youzhixueyuan.com/how-to-get-high-concurrency-experience.html
喜欢 (3)
优知学院陈睿
关于作者:
优知学院创始人,高级技术专家,13年互联网从业经验,BAT架构师技术500期作者,曾先后就职于淘宝、盛大、百度、携程,历任资深研发工程师、架构师、研发经理、事业部CTO,擅长大型网站高并发架构设计。
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址