作者:阿凡卢

出处:http://www.cnblogs.com/luxiaoxun/

一、什么是高并发

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

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

响应时间:系统对请求做出响应的时间。

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

QPS:每秒响应查询请求数。

TPS:每秒响应事务请求数。

并发用户数:同时承载正常使用系统功能的用户数量。

二、提升系统的并发能力

互联网分布式架构设计,提高系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)。

(1)垂直扩展:提升单机处理能力。垂直扩展的方式又有两种:

1)增强单机硬件性能,例如:增加CPU核数如32核,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G;

2)提升单机架构性能,例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;

(2)水平扩展:只要增加服务器数量,就能线性扩充系统性能。水平扩展对系统架构设计是有要求的,如何在架构各层进行可水平扩展的设计是本文重点讨论的内容。

1、系统集群化部署+负载均衡

(1)添加负载均衡层,将请求均匀打到系统层。

(2)系统层采用集群化多活部署,扛住初步的并发压力。

2、数据库分库分表+读写分离+分布式数据库

(1)分库分表:水平拆分、垂直拆分(弊端太多如关联查询)。

(2)读写分离:主库写,从库读(数据同步延迟)。

(3)分布式数据库:TiDB(HTAP、兼容MySQL协议、水平扩展、分布式事务)

3、缓存

(1)本地缓存:本地磁盘或内存。

(2)分布式缓存:用缓存集群抗住大量的读请求。

(3)预缓存,多级缓存。

4、消息中间件

(1)系统解耦,数据同步。

(2)请求异步化处理,实现削峰填谷的效果。

5、应用拆分(微服务)

(1)按业务拆分、减少耦合。

(2)分级部署,扩容缩容。

(3)应用资源隔离。

6、CDN(内容分发网络)

(1)尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节, 使内容传输的更快更稳定。

(2)CDN能够实时地根据网络流量和各节点的链接,负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

关微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的教程,都是干货。

猜你喜欢

1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结

2、如何才能成为优秀的架构师?

3、从零开始搭建创业公司后台技术栈

4、程序员一般可以从什么平台接私活?

5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6、滴滴业务中台构建实践,首次曝光

7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

8、15张图看懂瞎忙和高效的区别

9、2T架构师学习资料干货分享


http://www.taodudu.cc/news/show-1749966.html

相关文章:

  • 牛逼哄哄的 RabbitMQ 到底有啥用?
  • 辣鸡,你怎么天天就会 try...catch ?试试这个
  • 卧槽:这款 SQL自动检查神器,吊炸天的功能,真TMD多!!
  • 熬了一个通宵,终于把Reids的7千万个Key删完了,今天脑子都嗡嗡响!
  • GitHub上最励志的计算机自学教程,绝对牛B
  • 刚刚用鸿蒙跑了个“hello world”!跑通后,我特么开始怀疑人生....
  • Redis 面试一定要知道的 3 个 问题!
  • Spring的Controller是单例还是多例,怎么保证并发的安全
  • 这么多牛逼的Java常用Json库,万万没想到它的性能最好!
  • ZooKeeper 这么牛逼,基本原理你懂吗?
  • 开放 API 接口签名验证,让你的接口从此不再裸奔 !
  • 字节一面,面试官拿System.out.println()考了我半个小时?我懵逼了...
  • Spring Boot 如何使用 Redis 进行 API 防刷限流?
  • 豪横!1.3 亿的数据毫秒级???居然做到了!!!
  • 一个 Spring Boot 项目该包含哪些?
  • 真会玩!竟然可以这样用IDEA通过数据库生成lombok版的POJO...
  • 2020 年 9 月程序员工资统计,新出炉!
  • 我脸都问绿了!二面竟然被问到MySQL时间类型datetime、bigint及timestamp的查询效率......
  • 又一款程序员摸鱼神器来了?上班也可以在VSCode看股票 基金实时数据
  • 后端服务慢成狗?试试这 7 招!
  • 为什么谷歌要执行严格的代码编写规范?
  • 三天两夜肝完这篇万字长文,终于拿下了 TCP/IP
  • Spring Boot 如何使用拦截器、过滤器、监听器?
  • 还不会回答Spring Boot和Spring MVC的关系?大厂Java高级面试官告诉你答案!
  • MySQL 事务的实现原理,写得太好了!
  • Redis 那么快之底层 ziplist 的奥秘!
  • 太强了!一个基于 Redis 的限流系统的设计!
  • 程序员常见的口头禅汇总,你中招了没?
  • 牛皮啊!竟然可以为Dubbo接口生成文档了!
  • SpringBoot 整合SpringSecurity示例实现前后分离权限注解+JWT登录认证

抗住百万高并发的 6 个关键技术!相关推荐

  1. tps 数据库写并发衡量_硬核干货!抗住百万高并发的 6 个关键技术!

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

  2. java百万级别的并发_抗住百万高并发的 6 个关键技术!

    作者:阿凡卢 出处:http://www.cnblogs.com/luxiaoxun/ 一.什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通 ...

  3. Java百万高并发的技术方案

    前言:高并发,几乎是每个程序员都想拥有的经验.原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时.CPU load升高.GC频繁.死锁.大数据量存储等等,这些问题能推动我们在技术深度 ...

  4. 一周爆肝上线百万高并发系统!你给我解释解释什么叫牛逼?

    作者:木子鱼皮 链接:https://www.nowcoder.com/discuss/368998 本文是个人(腾讯广告全栈毕业生)从零开始一周紧急上线百万高并发系统的相关经验.思路及感悟,在此记录 ...

  5. 新浪微博技术分享:微博实时直播答题的百万高并发架构实践

    本文由"声网Agora"的RTC开发者社区整理. 1.概述 本文将分享新浪微博系统开发工程师陈浩在 RTC 2018 实时互联网大会上的演讲.他分享了新浪微博直播互动答题架构设计的 ...

  6. 抗住百万人直播、被联合国推荐,起底飞书技术演进之路!

    你去公司上班了吗? 随着近期接连不断传来的好消息,上班族开始关心起这问题来.但许多企业在相关政策的号召下,仍采取远程办公的方式.据艾媒咨询的数据显示,今年春节期间中国远程办公企业规模超过 1800 万 ...

  7. 一周上线百万高并发系统!你给我解释解释什么叫牛逼?

    本文是个人(腾讯广告全栈毕业生)从零开始一周紧急上线百万高并发系统的相关经验.思路及感悟,在此记录分享. 后续持续更新,欢迎先

  8. 阿里云数据库开源发布:PolarDB三节点高可用的功能特性和关键技术

    简介:在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云数据库技术专家孟勃荣 带来了主题为<PolarDB 三节点高可用>的精彩演讲.三节点高可用功能主要为 PolarDB ...

  9. 千锋教育——技术纯享丨威哥聊高并发场景下反向代理技术:Nginx

    学习一门技术,按照威哥的思路,一定得先了解一下这是什么,有什么用,以及怎么用,这样的学习效率才是高效的. NO.1  什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向 ...

  10. Java高性能高并发实战之页面优化技术(五)

    文章目录 前言 正文 增加缓存 页面静态化,前后端分离 页面缓存 实际操作 URL缓存 对象缓存 具体实现思想 具体实现过程 页面静态化 后记 前言 此篇文章是系列的第五章篇文章,具体文章目录: 章节 ...

最新文章

  1. 2022-2028年中国消防报警行业市场前瞻与投资战略规划分析报告
  2. 4、列举你工作中遇到的IE6 BUG,谈谈解决方案
  3. jquery中动态效果
  4. es6数组初始化_ES6 迭代器(Iterator)和 for...of循环使用方法
  5. 4g网络什么时候淘汰_5G时代,4G将淘汰?4G手机会不会像2g,突然失去网络
  6. Apache http强制转为https页面访问(转)
  7. java httpclient form_Java后台使用httpclient入门HttpPost请求(form表单提交,File文件上传和传输Json数据)...
  8. ubuntu PPA
  9. Asp.net发布的CheckList
  10. Selenium之Chrome浏览器的启动问题及解决
  11. linux跟踪函数代码,linux ltrace-跟踪进程调用库函数的情况
  12. Error: Invalid or corrupt
  13. 大学生恋爱交友软件03(小幸运)——痛点分析
  14. 由《资深架构师带你玩转框架封装》课程——我的实践
  15. python简单代码恶搞-python—做一个恶搞程序
  16. 中颐软启动器说明书_中颐软启动器维修
  17. picasa解决方案
  18. MarkDown 符号大全
  19. ios healthkit_如何使用Swift从iOS的HealthKit中读写Mindful Minutes
  20. Qt之简易版网络调试助手

热门文章

  1. 轮子|Python2异常链
  2. 蚂蚁分类信息系统5.8 解决手机端新闻详情页面图片不自动缩放问题
  3. 《黑客大曝光:移动应用安全揭秘及防护措施》一3.5 小结
  4. TCP/UDP,SOCKET,HTTP,FTP 简析
  5. 关于郭天祥51开发板无法烧敲代码问题的解决(Prolific USB-to-Serial Comm Port)
  6. nginx打开Last_modified
  7. 关于空间复杂度,你可能有几个疑问?
  8. codeforces B. Coins
  9. 打开运行PS、AI等软件时卡在启动窗口的解决办
  10. 如何使用 Mac 的通知中心?