2020年没写过啥内容,做一下知识回顾吧,标题可能有点“标题党”,见谅。

高并发的简易理解:保证系统能够同时并行处理的很多的请求。

高并发,高可用,高效率三个名词是个有侧重。简称“三高”,是系统架构设计的高级要求。今天侧重讲一下《高并发》。

高并发四大要素:

1-》响应时间:系统对进来的请求反应的时间,比如你打开一个页面需要1秒,那么这1秒就是响应时间。

2-》吞吐量:单位时间内处理的请求数量。好比你吃饭,每秒能吃下多少颗米饭。

3-》秒查询率:秒查询率是指每秒响应请求数,和吞吐量差不多(互联网领域)。

4-》并发用户数:同时承载正常使用系统功能的用户数量。最明显的应用案例是 即时通讯系统、多人联机游戏系统。

常见的互联网系统架构分层图:

提高并发能力的两种主要方法:垂直扩展(单兵升级SOLO),水平扩展(组团群殴)。

垂直扩展:

(1)硬件升级:CPU不够加CPU,内存不够加内存,磁盘空间不足加磁盘,机械磁盘换固态等。

(2)网络升级:网络带宽拉满,域名、静态资源使用CDN加速。

(3)软件升级:优化代码算法,减少逻辑处理循环,使用Cache代替实时查询,使用异步增加吞吐量,少用锁减少响应时间等。

(4)数据库升级:本地数据库换云数据库,增加数据库连接数,优化索引,优化sql,提升配置等。

在互联网领域由于时间重要性,在预算够的话,优先采用此类方法。业务快速发展重要性远超服务器升级费用。

无论怎么垂直扩展,终究会有极限的。(人是有极限的,所以我不做人了JOJO!不要问为什么会有这句话。)单兵升级在后期总会有瓶颈,同时费用与性能开始不具备线性增长了。所以水平扩展是高并发的终极方案。

有个实际案例:阿里云扩容以应对钉钉业务暴增。

实践证明,阿里云作为国内技术大佬。方法就是水平扩容。下面介绍一下我们在常见的互联网结构设计中,如何提高系统的并发数。本文会在多个层级提供水平扩展思路。

域名层:

这个属于我自己理解的,名字可能有些不妥。大家理解下。拿国民级应用APP《微信》的域名:mp.weixin.qq.com举例。依据业界公开数据,微信日活超10亿用户,这个并发能力世界顶尖。先看下域名这一块的处理(个人理解,远达不到专家水平。)

首先微信域名的解析到了多个IP地址上。其中还包含IPV6地址 。从源头将流量进行了初步拆分,同时访问网络也有优化,请求发起者会转交至最近的应用服务器处理,提高处理效率,减少网络请求时长。

2.web服务容器:

由于DNS解析已做了分流。这里不难看出,如果对应的IP地址是负载均衡地址或者是集群地址,负载均衡内部可无限水平扩容,使用一样的软件代码,系统配置,(可能涉及到session或者支付、授权等IP白名单问题,根据业务处理)就可线性增加并发量。同时还可根据设置优化nginx的线程配置,增加处理线程。也可设置代理服务器的端口配置,增加处理服务端口。

3.web应用及业务层:

使用微服务思路进行业务拆分,或者将业务板块集群化,通过统一的服务调度将业务分散到不同集群处理。本质上是在多个服务器上配置相同的业务模块然后,流量拆分到不同的服务器上。同时还可搭配使用消息队列和使用缓存进一步扩大接受容量(但不是同实时处理)。

4.数据库层:

这里就老生常淡的主从处理,读写分离。通过水平的添加只读实例快速提高大量的读请求。还可通过分库分表,将按地域或者按用户拆分不同的水平库,然后增对日益上涨的数据量采用水平分库。这里就十分考验数据库的设计和查询逻辑。这里会是重点,相比于用户访问是短平快,但是数据库的增长是不断累积的。后续将会专门在这个环节细讲。

互联网架构“高并发”解决思路相关推荐

  1. .Net高并发解决思路(转)

    .Net高并发解决思路 2018年10月21日 14:19:14 赵东小生 阅读数:736 高并发 高并发一直是网站上线后会遇到的一个严峻的考验,渡过了一切都好,渡不过就是宕机. 在电商时代如此发达的 ...

  2. 互联网架构“高并发”

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

  3. .Net高并发解决思路【转载】

    文本为转载文章 首先在windows上安装好Redis,RabbitMQ Redis-cli使用示例 ModelContext.cs代码: public class ModelContext : Db ...

  4. 【 58沈剑 架构师之路】究竟啥才是互联网架构“高并发”

    2019独角兽企业重金招聘Python工程师标准>>> 一.什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设 ...

  5. 究竟啥才是互联网架构“高并发”

    为什么80%的码农都做不了架构师?>>>    一.什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系 ...

  6. 互联网架构“高并发”到底怎么玩?

    什么是高并发? 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求. 高并发相关的常见指标有哪些? 响应时间 ...

  7. 如何理解,互联网架构“高并发”?

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

  8. Java架构-高并发的解决实战总结方案

    Java架构-高并发的解决实战总结方案 1.应用和静态资源分离 刚开始的时候应用和静态资源是保存在一起的,当并发量达到一定程度的时候就需要将静态资源保存到专门的服务器中,静态资源主要包括图片.视频.j ...

  9. Java生鲜电商平台-SpringCloud微服务架构高并发参数优化实战

    Java生鲜电商平台-SpringCloud微服务架构高并发参数优化实战 一.写在前面 在Java生鲜电商平台平台中相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构,毕竟现在这 ...

最新文章

  1. 计算机网络职称考试,职称计算机考试Internet基础知识:计算机网络组成
  2. php 字符串替换 正则表达式,PHP中一些可以替代正则表达式函数的字符串操作函数...
  3. re-for-50-plz-50 寒假逆向生涯(6/100)
  4. U3D 编辑器中sceneview下相机操作相关
  5. 看看50万码农怎么评论:为什么程序员工资那么高但很少有人炫富?
  6. 数据结构与算法 / 平衡二叉树(AVL树)
  7. python 带pydev的eclipse无法导入win32api包(或无法导入其他包)
  8. java opencsv_用opencsv文件读写CSV文件
  9. shell内部命令和外部命令
  10. 通过exescope软件查看DLL的情况
  11. InfoGAN详细介绍及特征解耦图像生成
  12. verilog实现N分频电路
  13. 开源项目——小Q聊天机器人V1.5
  14. 漫画:滑动窗口入门题目,没有之一
  15. 华为nova5i计算机有计算记录吗,华为nova5i评测 值不值得买
  16. 项目经理/小组长的职责
  17. int 长度 mysql_MySQL int 类型的长度和范围解惑
  18. python学了真的很有用吗-你还在盲目跟风学Python?你真的了解吗?某华大学教授有话要说...
  19. 区块链的大问题有救了!
  20. Linux环境AES解密报错:Given final block not properly padded. Such issues can arise if a bad key is used dur

热门文章

  1. linux声卡驱动教程,Linux操作系统下声卡驱动的详细加载方法
  2. 双足机器人ZMP预观控制算法通俗解释
  3. pycurl的学习之路
  4. [微机原理与接口技术]1-5、段寄存器以及逻辑地址和物理地址。
  5. Window删除dll文件时提示“操作无法完成,因为文件已在Windows 资源管理器中打开”
  6. 小鼠瘦素ELISA试剂盒,手把手教你测!
  7. 一个计算机系统可以用吗,如果把系统放在U盘里,真的可以在任何一台电脑上使用吗?...
  8. 投递简历上百家,石沉大海了无音讯?阿里Java技术架构师教你如何写好你的技术简历
  9. 电信数据仓库设计的六个关键环节
  10. JS的Array.isArray来判断是否是数组