1.互联网需要应对的挑战
高并发、大流量、海量数据、用户分布广泛、网络情况复杂、安全情况复杂、功能迭代频繁。
2.应对高并发挑战的两个方向
1.垂直伸缩
通过升级服务器硬件和提供网络吞吐能力。
优点:不更改系统架构,是短期最快最安全提供系统并发能力。
缺点:会有瓶颈
2.水平伸缩
增加服务器
优点:水平伸缩可以克服垂直伸缩带来的单位计算成本随计算能力增加而迅速飙升的问题
缺点:提高了系统复杂度
3.互联网架构演化
1.应用数据分离; 2.使用缓存增加系统性能 3.应用服务器集群化,提高系统并发能力;4.数据库读写分 5.使用反向代理和CDN加速网站响应;6.使用分布式文件系统和分布式数据库;7.使用搜索引擎和Nosql;8.业务拆分,微服务化,中台化;9.大数据化、智能化
4.架构模式与要素
架构模式
(1)分层
将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层依赖和调用组成一个完整的系统。
(2)分割
分割就是在纵向方面对软件进行切分。系统越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分割开来,包装成高内聚低耦合的模块单元
(3)分布式
分布式应用和服务,分布式静态资源,分布式数据和存储,分布式计算
(4)集群
独立部署的服务器集群化,即多台服务器部署相同应用构成一个集群通过负载均衡设备共同对外提供服务
(5)缓存
CDN,反向代理,远程缓存,本地缓存
(6)安全
互联网的开放特性使得其从诞生起就面对巨大的安全挑战,网站在安全架构方面也积累了许多模式:通过密码和手机校验码进行身份认证;登录、交易等操作需要对网络通讯进行加密,网站服务器上存储的敏感数据如用户信息等也进行加密处理;为了防止机器人程序滥用网络资源供给网站,网站使用验证码进行识别;对于常见的用于攻击网站的XSS 攻击,SQL 注入,进行编码转换等相应处理;对于垃圾信息、敏感信息进行过滤;对转账交易等重要操作根据交易模式和交易信息进行风险控制。
(7)异步
就是将一个业务操作分成多个阶段,每个阶段之间通过共享数据而不是直接调用的方法进行协作。
(8)冗余
互联网应用需要7×24小时连续运行,但是服务器总有可能会出现故障,特别是服务器规模比较大的时候,服务器宕机是必然事件。要想保证在服务器宕机的情况下网站依然可以继续服务,数据不会丢失,就需要一定程度的服务器冗余运行,数据冗余备份。
(9)自动化
运维自动化,监控,发布,事故通知。自动化任务编排。
网友评论