互联网系统面临的挑战
-
高并发 大流量
-
高可用,7x24
-
海量数据,比如各种记录,各种日志,订单,需要分析
-
用户分布广泛,网络情况复杂
-
互联网安全问题
-
需求快速变更,发布频繁
应对高并发
1. 垂直伸缩
通过升级硬件和网络吞吐能力可以实现垂直伸缩。
不需要改变原始的系统架构。只需要替换性能更高的硬件
比如,更换SSD硬盘,使用 RAID,
增加内存到 32G,比如redis内存不足时
升级网口,提高网络流量,比如每秒多少兆的流量
更换服务器增加CPU
2. 水平伸缩
指通过增加服务器提升计算能力的一类架构方法
垂直伸缩的系统架构未变,垂直,就相当于在同一个架构组件上,升级
水平伸缩,从1台扩展到n台
如何衡量一个系统的架构设计
高性能
高可用
可伸缩
指的是,同一个集群内的服务,可以任意的增加一台服务器,减少一台服务器
可扩展
指的是 功能性 业务上的扩展,可以方便的扩展,而又不太影响其他服务业务功能
安全
互联网架构模式
分层
最常见的,比如 接入层,逻辑处理层,数据存储层 等等
分割
分割服务,高内聚低耦合的模块单元
分布式
集群
注意,是 相同应用
构成一个集群,并且通过 负载均衡
设备对外提供服务
缓存
cdn, nginx反向代理,远程缓存,本地缓存 一级一级的缓存
异步
发送请求给下个服务,但是不等结果,有结果,下个服务通知当前服务
共享数据,指的是 前一个服务的请求把数据 通过 mq 发送出去,另一个服务读取mq,来处理。 然后,结果,通过回调的方式,或者其他什么方式通知调用者,而不是 调用者在等待结果
冗余
主从复制
自动化
运维与监控
安全
架构演化,以及 某些互联网公司架构
架构的演化,一般都是跟着需求来的。一开始都是单体的服务结构,然后逐渐发展到 分布式集群的服务架构,以及微服务、中台
最简单的架构:
image.png
最终的复杂的架构:
image.png
维基百科服务架构
image.png
可见,对于互联网产品,服务架构的解决方案,大都会有 分布式、集群、缓存、微服务 等技术
另外,针对安全、运维、以及用户数据分析的大数据平台也需要有对应的解决方案
网友评论