21丨分布式架构:如何应对高并发的用户请求
李智慧
该思维导图由 AI 生成,仅供参考
互联网应用以及云计算的普及,使得架构设计和软件技术的关注点从如何实现复杂的业务逻辑,转变为如何满足大量用户的高并发访问请求。
一个简单的计算处理过程,如果一旦面对大量的用户访问,整个技术挑战就会变得完全不同,软件开发方法、技术团队组织、软件的过程管理都会完全不同。
以新浪微博为例,新浪微博最开始只有两个工程师,一个前端,一个后端,两个人开发了一个星期就把新浪微博开发出来了。现在许多年过去了,新浪微博的技术团队有上千人,这些人要应对的技术挑战,一方面来自于更多更复杂的功能,一方面来自于随着用户量的增加而带来的高并发访问压力。
这种挑战和压力几乎对所有的大型互联网系统都是一样的,淘宝、百度、微信等,虽然功能各不相同,但都会面对同样的高并发用户的访问请求压力。要知道,同样的功能,供几个人使用和供几亿人使用,技术架构是完全不同的。
当同时访问系统的用户不断增加的时候,需要消耗的系统计算资源也不断增加,需要更多的 CPU 和内存去处理用户的计算请求,需要更多的网络带宽去传输用户的数据,需要更多的磁盘空间去存储用户的数据。当消耗的资源超过了服务器资源的极限的时候,服务器就会崩溃,整个系统无法正常使用。
那么如何解决高并发的用户请求带来的问题?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
分布式架构在面对高并发用户请求时的应对策略成为互联网应用和云计算领域的关键技术挑战。传统的垂直伸缩方式已不再适用,而水平伸缩成为更为有效的解决方案。通过构建分布式集群,将多台服务器组织起来,统一提供服务,从而提高整体系统的处理能力。分布式架构方案已成为互联网应用和云计算中的普遍选择,有效解决高并发用户请求带来的系统资源消耗问题,同时避免了垂直伸缩带来的价格成本和服务器处理能力不成比例的问题。分布式技术包括分布式缓存、负载均衡、反向代理与CDN、分布式消息队列、分布式数据库、NoSQL数据库、分布式文件、搜索引擎、微服务等,逐渐演化出复杂庞大的分布式系统。随着业务的不断复杂化,海量数据的存储与查询、网络带宽压力、访问延迟等问题成为重要挑战。分布式技术架构设计已成为互联网系统的核心驱动力,为满足高并发的用户访问压力提供了关键支持。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《后端技术面试 38 讲》,新⼈⾸单¥59
《后端技术面试 38 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(15)
- 最新
- 精选
- Citizen Z除了高并发,还有这些挑战: 1. 数据规模:UGC 和行为数据 2. 大流量:要考虑大型文件或流数据对带宽的压力 3. 高峰场景:无计划或有计划的访问量爆发(营销活动、热点事件)、DDoS,要求系统可伸缩 4. 安全性:暴露在公网,安全通信和隐私保护问题不可避免 5. 高可用:宕机意味着用户流失,复杂网络环境问题等外部因素也要考虑在内 6. 快速变化:产品创新以吸引和留存用户,这需要可扩展的系统设计和高效敏捷的团队协作机制
作者回复: 👍
2020-01-1161 - 探索无止境老师您好,发现网络很多文章说"分布式是术,微服务架构是道",然后还很多人认同,但我的理解是刚好反过来,我认为"分布式是道,微服务架构只是其中一个产物",不知道老师更认同哪种说法?
作者回复: 我赞同你的理解
2020-02-2328 - 奔奔奔跑仿佛回到了当初看大型网站架构技术的时候了2020-01-12312
- holybell说点自己的看法,互联网为了解决高并发而采用分布式系统,引入一个集群必然带来集群所需要处理的问题,比如启用数据库集群必然带来数据如何在为集群间分发,主库读写分离如何避免读库的同步延迟导致的数据不一致性;分布式系统之间的调用如何确保事务性;为了提高读性能引入的nosql如何避免缓存和数据库的一致性问题等等……2020-01-113
- escray一篇文章讲完互联网技术二十年演变历史。 互联网应用系统面对的挑战,除了高并发,还有高可用、高性能、安全性、易扩展、可伸缩等等;传统 IT 系统面临的挑战,一般不会出现高并发,但是高可用应该是需要保证的。 我觉的传统 IT 系统最大的问题其实是如何把现有的技术用好,能够尽可能的辅助生产环节,提高生产效率和费效比,最大的困难可能是在需求环节。 其实我有一点好奇,如果不是互联网大厂,而是一个中小型的互联网公司,在现在的条件下如何应用这些技术? 虽然大体上的思路应该一直,但是完全照搬肯定是没有必要的,自己独立开发部署也不现实。 比如日活三四百万的应用,把服务部署在阿里云或者腾讯云上,如何利用云平台基础设施,完成易扩展(万一踩到风口呢?)、可伸缩(经济考虑)、一般并发(估计算不上高并发)的架构设计呢?2020-10-062
- 芒果少侠关于思考题,我想到比较明显的几点: 1. 安全性挑战更大:一方面,互联网应用系统每天都可能面临各种不可预测的黑客攻击(如DDos攻击、注入攻击等);另一方面,用户数据安全的保护也变得更为重要 2. 可用性要求更高:互联网应用系统一般都是7x24小时全时段对外提供服务的,因此服务宕机带来的影响比传统IT软件带来的影响范围更广 3. 业务逻辑更为复杂:在互联网信息时代,用户诉求更多,无时无刻不带来新的需求变更。这会带来更加频繁的业务升级和系统迭代2020-03-242
- 老袁高并发场景下,除了CDN技术,还有什么方法能够解决文件(图片)对宽带的压力问题呢?2022-05-1511
- 不记年网络安全 面向互联网的系统因为服务是依托公网的那么就存在被攻击的风险 业务迭代迅速 巨大的用户规模带来巨大的用户反馈 海量信息存储 巨大的用户规模带来海量的信息 各种政策2020-02-131
- Paul Shan扩容垂直伸缩和水平伸缩的关键不同在于垂直伸缩是在在服务器总数基本不变的情况下增加单机的性能,水平伸缩则在单机性能不增加的前提下,如何在众多服务器操作系统架构之上重新设计一种新的架构来处理并行,不同的服务器会因为各种的特点而各司其职。垂直伸缩极限较快达到。水平伸缩更为丰富,极限也较大。就像操作系统是把CPU,内存和各种IO作为调度单元而让系统发挥出最大性能。一个好的分布式系统是以各种服务器作为调度单元而让系统做到快速响应。2020-01-171
- test1. 刚开始的时候系统很简单,应用程序、数据库和文件系统在单机上 2. 单机是瓶颈,把应用程序、数据库和文件系统分别拆分到不同的机器上 3. 数据库访问是瓶颈,加上缓存服务器 4. 应用程序是瓶颈,应用程序部署为集群,上游加上负载均衡服务器 5. 数据库访问再次成为瓶颈,引入读写分离 6. 海量数据的存储与查询,以及网络带宽压力成为瓶颈,引入CDN和反向代理提供前置缓存 7. 为了使系统更易于扩展,引入消息队列解耦子系统 引入每一个功能都会导致系统复杂性提高,需要解决的问题变多。所以需要具体问题具体分析。2022-11-06归属地:广东
收起评论