




分布式应用
问题:
高并发用户请求到达时,服务器需要创建大量线程,消耗大量计算机资源,当资源不足时,系统就会崩溃。
解决:
负载均衡服务器
将多台应用服务器构建成分布式集群,用户请求首先到达负载均衡服务器,然后由负载均衡服务器将请求分发到不同的应用服务器上。当高并发用户请求到达时,请求被分摊到不同服务器上。

分布式缓存
问题:
高并发请求访问数据库,会给数据库造成极大的负载压力;同时数据库的数据储存在硬盘中,查询需要进行多次磁盘访问,性能较差。
解决方案:
使用缓存。将数据缓存起来,访问数据时先查询缓存,如果缓存没有,才去数据库查找。

分布式消息队列
分布式消息队列是解决突发的高并发写操作问题和实现更简单的集群伸缩的常用技术方案。
消息队列架构主要包含三个角色:消息生产者、消息队列、消息消费者

分布式关系数据库
关系数据库本身并不支持伸缩性,为了解决关系数据库存储海量数据以及提供高并发读写的问题,可将数据进行分片,再将不同分片写入到不同数据库服务器中。
实现数据库的伸缩性:将多台服务器构成一个分布式的关系数据库集群(如下图)

分布式微服务
分布式微服务架构:

微服务的核心思想:将单体架构中庞大的业务逻辑拆分成小的、低耦合的服务,然后通过服务间的调用完成业务的处理。
微服务框架组件:
微服务注册中心:微服务地址列表
RPC远程调用框架:远程调用



并发相关指标有哪些?
| 并发指标 | 如何估算? | 举例 |
| 目标用户数 | 所有可能访问我们系统的潜在用户的总和 | 微信的目标用户是所有中国人,13亿 |
| 系统用户数 | 访问过系统的用户 | |
| 活跃用户数 | 经常访问系统的用户规模 |
如: 月活跃用户数:一个月内访问过的总用户数 日活跃用户数:一天内访问过的总用户数 |
| 在线用户数 | 正在使用系统的用户总数 | |
| 并发用户数 | 服务器正在处理当前请求的用户 |
并发量如何估算?
(1)估算用户指标:
根据市场规模估计一个目标用户数,再根据产品特点、竞品数据等,逐步估算其他用户指标
(2)估算技术指标:
每天新增文件存储空间
存储总系统用户需要的数据库规模
总王阔带宽
QPS:每秒处理的请求
总结
高并发架构的主要挑战就是大量用户请求需要使用大量的计算资源。至于如何增加计算资源,互联网应用走出了一条水平伸缩的发展道路,也就是通过构建分布式集群架架构,不断向集群中添加服务器,以此来增加集群的计算资源。对于如何增加服务器又诞生了各种各样的分布式技术方案。掌握了这些分布式技术,就算是掌握了高并发系统架构设计的核心。
拓展阅读
———
-
Java合集
-
Redis合集
-
Spring合集
-
MySQL合集
-
MyBatis合集
-
面试
-
杂文合集
-
读书笔记合集
本篇文章来源于微信公众号: 海盐架构笔记
微信扫描下方的二维码阅读本文

Comments NOTHING