一起了解什么是高并发

我们在找工作时,经常在招聘信息上看到有这么一条:有构建大型互联网服务及高并发等经验,想到高并发,我们第一想到了媒体上经常出现的新闻阿里双11每秒处理xx万订单,瞬间觉得高并发是一种很屌的技术,很高大上,如果像笔者这种没做过大型服务的普通程序员,在此根据网上的资料,对高并发写一下我个人的看法

高并发的概念

这里我引用一段架构师之路公众号究竟啥才是互联网架构高并发中的一段话来描述:

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

那么很多请求,具体达到多少请求才算是高并发系统呢?这个也没有明确数量上的定义,根据网上很多大型互联网公司的相关高并发博客,一般PV在千万级别以上的公司才会涉及到这个概念,所以如果某个系统的日PV在千万级别以上,可能是一个高并发系统.这里根据具体业务不同,这个数字可能高或者低一些

并发与并行的区别

这里涉及到一个问题,很多同学搞不清楚并发与并行的区别,这里我根据我根据知乎上这个问题某位网友的例子,我觉得很好

  • 你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行
  • 你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发
  • 你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行

并发:你有处理多个任务的能力,不一定同时(一个CPU轮流)

并行:有同时处理多个任务的能力(多个CPU同时)

并发和并行都可以是很多个线程,就看这些线程能不能同时被(多个)CPU执行,可以说明是并行,并发是多个线程被一个CPU轮流切换着执行

高并发的相关指标

高并发相关指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等

响应时间:系统对某个请求做出相应的时间.例如处理一个HTTP请求,从HTTP发出到收到响应需要200ms,则200ms就是系统的响应时间.

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

QPS:每秒响应请求数,这个感觉和吞吐量区分不大

并发用户数:同时承载正常使用系统功能的用户数量. 例如微信,同时可以x亿人在线,一定程度代表了系统的并发用户数

提高并发能力

有以下途径:

  • 增加机器:读写分离,分布式部署(不同模块),集群(相同服务)
  • 增强单机性能:数据库优化,优化代码(如算法),硬件升级(CPU,内存,SSD等)

Golang的并行能力

Golang从语言层面对多核CPU支持非常好,在设计程序时运用了并发的设计理念,Go程序在运行期有可能是并行的

Rob Pike大神关于两者的阐述:“并发关乎结构,并行关乎执行”

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2017-09-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算

云计算领域中你需要知道的 52 个术语

你觉得你已经对云服务的所有东西了如指掌了吗?那么,来看一下这份由云服务相关的术语、短语、工具和服务提供商组成的列表来确保你确实做到了这一点吧。

32490
来自专栏开源项目

码云团队如何使用码云?

22440
来自专栏java工会

Js埋点与流量分析

页面埋点的作用,其实就是用于流量分析。而流量的意思,包含了很多:页面浏览数(PV)、独立访问者数量(UV)、IP、页面停留时间、页面操作时间、页面访问次数、按钮...

41910
来自专栏跟我一起学Docker

【番外篇】ETCD学习

etcd是一个开源的、分布式的键值对数据存储系统,提供共享配置、服务的注册和发现。etcd与zookeeper相比算是轻量级系统,两者的一致性协议也一样,etc...

12640
来自专栏架构师之旅

Mysql在大型网站的应用架构演变

写在最前: 本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变 可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展...

20680
来自专栏李成熙heyli

教你如何读webpack2中文文档

经过一个多月的奋战,webpack2的中文文档已经翻译好大部份,并且完成了核心内容“概念”和“指南”部份的校对。 这份文档比react, vue之类的文档都要庞...

264100
来自专栏古时的风筝

如何接手一个新项目

2、为技术服务的项目,比如开源中间件项目(dubbo、spring cloud、各种数据库中间件、各种缓存方案等);

15900
来自专栏IT技术精选文摘

PB级海量数据服务平台架构设计实践

基于PB级海量数据实现数据服务平台,需要从各个不同的角度去权衡,主要包括实践背景、技术选型、架构设计,我们基于这三个方面进行了架构实践,下面分别从这三个方面进行...

55460
来自专栏云加头条

黄荣奎:腾讯云微信小程序解决方案

本文介绍小程序在腾讯云上的解决方案,如何快速帮助开发者快速完成开发和上线。

4.2K200
来自专栏章鱼的慢慢技术路

游戏服务器架构概要

方案:切分xysvr,让多个scene分别服务于一些用户,world负责拉取数据。并协调控制多scene。

60620

扫码关注云+社区

领取腾讯云代金券