写点什么

总结

用户头像
chenzt
关注
发布于: 2020 年 07 月 01 日

1.互联网面临的挑战

高并发、大流量:需要面对高并发用户、大流量访问。

高可用:系统 7*24 小时不间断服务

海量数据:需要存储、管理海量数据。

用户分布广泛,网络情况复杂:许多大型互联网都是为全球用户提供服务的,用户分布范围广,网络环境也不同。

安全环境恶劣:由于互联网 公司的开放性,使得网站更容易受到攻击。

需求快速变更,发布频繁:互联网产品为快速适应市场,满足用户需求,产品发布频率是极高的。

渐进式发展:不同于传统软件产品或者企业应用系统,一开始就规划好全部的功能和非功能需求,几乎所有的大型互联网都是从一个小网站开始的,渐进的发展起来的。


2.应对高并发挑战的两个技术方向

垂直伸缩:通过升级硬件和网络吞吐能力可以实现垂直伸缩。不需要改变应用架构,是极其简单的短期伸缩性方案。

①通过使用 RAID 增加 I/O 吞吐能力。

②通过切换到 SSD 改善 I/O 访问速度。

③通过增加内存减少 I/O 操作

④通过升级网络接口或者增加网络接口提高网络吞吐能力。

⑤更新服务器使用更过处理器或者更多线程

确定:

垂直伸缩有物理极限、达到某个程度后,增加计算能力需要更多的花费、操作系统的设计或者应用程序自身制约着垂直伸缩最多只能达到某个点。


水平伸缩:通过增加服务器提升计算能力的一类架构方法。


2.互联网架构的演化

阶段零: 最简单的单体架构

阶段一:应用数据分离

阶段二:使用缓存改善性能

阶段三:使用应用服务器集群改善系统的并发处理能力。

阶段四:数据库读写分离

阶段五:使用反向代理和 CDN 加速网站响应

阶段六:使用分布式文件系统和分布式数据库系统

阶段七:使用 NoSql 和搜索引擎

阶段八:业务拆分

阶段九:微服务和中台化


3.架构模式

①分层:将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统应用。

②分割:分割是在纵向方面对软件进行切分,系统越大,功能越复杂,服务和数据处理的种类也就越多,将这个功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有利软件的开发和维护,另一个方面便于不同模块部署,提高网站并发处理能力和功能扩展能力。

③分布式:分层和分割的目的是对切分后的模块便于分布式部署,即将不同模块部署在不同服务器上,通过远程调用协同工作。分布式有:分布式应用和服务、分布式静态资源、分布式数据和存储、分布式计算。

④集群:使用分布式虽然已经将分层和分割后的模块独立部署,但是对于用户访问集中的模块,还需要部署服务器的集群化,即相同服务器部署相同应用构成集群,通过负载均衡设备共同对外提供服务。

⑤缓存:缓存就是将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段。缓存种类:CDN、反向代理、本地缓存、远程缓存

⑥异步:大型网站中系统的解耦的手段除了分层、分割、分布式等还有一个手段是异步,就是讲一个业务操作分割成多个阶段,每个阶段之间通过共享数据而不是直接调用的方法进行协作。作用:提高系统可用性、加快网站响应速度、消除并发访问高峰。

⑦冗余:保证在服务器宕机的情况下网站依然可以继续服务,数据不丢失,就需要一定程度的服务器冗余运行,数据冗余备份。

⑧自动化:在无人值守的情况下网站可以正常运行,一切都可以自动化是网站的理想状态。目前互联网的自动化架构设计主要集中在运维方面。

⑨安全:安全处理模式:通过密码和手机校验码进行身份认证;登录、交易等操作需要加密,数据加密,对于 XSS 攻击、sql 注入进行编码转换。对敏感信息就行过滤,对转账操作进行风险控制。


4.互联网架构核心要素

高性能、高可用、可伸缩、可扩展、安全性。


5.互联网技术

前端架构:

app 及 web 开发技术、浏览器及 http 优化技术、CDN、动静分离、图片服务、反向代理、DNS。

网关及应用层架构:

网关架构、负载均衡、动态页面静态化、业务拆分

服务层架构:

微服务框架、分布式消息队列、分布式缓存、分布式一致性服务

存储架构:

分布式文件、分布式数据库、NoSql 数据库

后台架构:

大数据平台、搜索引擎、推荐引擎、数据仓库

运维与安全:

数据采集与展示、数据监控与报警、攻击与防护、数据加密与解密

用户头像

chenzt

关注

还未添加个人签名 2018.05.15 加入

还未添加个人简介

评论

发布
暂无评论
总结