写点什么

浅谈互联网系统架构

用户头像
王鹏飞
关注
发布于: 2020 年 07 月 01 日
浅谈互联网系统架构
互联网系统面临的挑战

高并发,大流量,高可用(7*24),海量数据,用户分布广泛和网络情况复杂,安全环境恶劣,需求快速变更及发布频繁。

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

垂直伸缩:通过升级硬件和网络的吞吐能力可以实现垂直伸缩。由于不需要更高应用架构,通常认为是最简单的短期伸缩方案。

垂直伸缩的实现方式:1. 使用RAID(独立冗余磁盘阵列)增加 I/O 吞吐能力。2. 使用SSD(固态银盘)改善 I/O 访问速度。 3. 增加内存减少 I/O 操作。 4. 升级和增加网络接口,提高网络吞吐能力。 5. 更新服务器使用更多处理器或者更多超线程。

垂直伸缩的缺点:1. 达到某个程度后,增加计算能力花费更多。2. 垂直伸缩存在物理极限。3. 操作系统的设计或应用程序自身的制约垂直伸缩只能达到某个点。



水平伸缩:通过增加服务器提示计算能力。

水平伸缩的优点:克服了垂直伸缩带来的单位计算成本随着计算能力的增加而迅速飙升的问题。由于可以增加更多的服务器,这样就不会向垂直伸缩那样遇到单台服务器的极限。



互联网架构的演化

初始化阶段:一台服务器上包括应用程序,文件,数据库。

应用数据分类(第一个阶段):应用程序,文件,数据库分布在不同的服务器上。

使用缓存改善系统性能(第二阶段):应用程序使用本地缓存或者使用远程分布式缓存。

使用应用服务器集群(第三个阶段):将应用,文件,缓存等服务器进行水平伸缩改善系统并发处理能力。

数据库读写分类(第四个阶段):将数据库服务增加到两台服务器。主复杂写入,从复杂读操作。

使用反向代理和CDN(第五个阶段):将静态数据使用cdn(geocdn)或反向代理方式进行缓存处理。减少请求服务器次数。

使用分布式文件系统和分布式数据库系统(第六个阶段):大多数创业公司撑不到的这个阶段。

使用NoSql和搜索引擎(第7个阶段):特定业务场景下的需要如数据分析类。

业务拆分(第8个阶段):哈哈,这个阶段好的多项目在开始的时候就把业务查分的很细但是成本也会增加。

微服务及中台化(第9个阶段):中台为了整合和减少重复研发工作,并提供公共支撑服务。

互联网架构模式

每个模式描述了一个我们周围不断发生的问题及该问题的解决方案的核心。模式的关键在于重复性,问题和场景的可重复性带来的解决方案的可重复使用。

分层:一种最常见的架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对单一的职责,然后通过上下层依赖和调用组成一个完整的系统。

分割:纵向方面将软件进行切分,将不同功能和服务分割开来,包装成高内聚,低耦合的模块单元,一方面有助于软件的开发和维护;另一方面,便于不同模块的分布式部署。

分布式:分割和分层的一个主要目的是为了拆分后的模块便于分布式部署,即将不同模块部署在不同的服务器上,通过远程调用协同工作。(领域:分布式应用和服务,分布式静态资源,分布式数据和存储,分布式计算等)

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

缓存:将数据存放在距离计算最近位置加快处理速度。

异步:将业务操作分成多个阶段,每一个阶段直接通过共享数据而不是直接调用的方式极限协作。

冗余:要保重在服务器鸿机的情况服务可以继续提供服务,数据不会丢失,就需要一定程度上的服务冗余运行,数据冗余备份。

自动化:无人值守下服务正常运行(运维方面)。

安全:(安全架构模式) 1. 通过密码和手机号进行身份信息确认。2. 登录,交易操作需要对网络通信进行加密。3. 用户敏感数据的加密处理。4. 为了防止机器人程序滥用网络资源增加验证码识别。5.对于常见用于攻击的XSS攻击,SQL注入 进行编码转换等相应处理。6. 对于垃圾数据和敏感信息的进行过滤。7.对于转账交易等重要操作根据交易模式和交易信息进行风险控制。

总结

性能是一个互联网应用的重要指标。性能优化的手段也非常多,从用户端到数据库,从代码到机房部署,影响用户请求的所有环境都可以进行性能优化。在系统高可用方面主要的手段是冗余,应用部署在多台服务器上同时提供访问,数据存储在多台服务器上相互备份,任何一台服务器的鸿机都不会影响到整体可用,也不会有数据丢失。大型互联网应用同集群的方式将多台服务器组成一个整体共同提供服务。可伸缩是指通过不断的向集群中加入服务器的手段来缓解用户并发访问的压力和不断增加的数据存储需求。互联网应用的快速发展,功能的不断扩展,如何设计系统架构使其能够响应需求变化是系统可扩展架构的目的。衡量系统可扩展性的好坏的主要标准就是在系统增加新的业务产品时,是否可以实现对现有产品透明无影响。可扩展架构的主要手段是事件驱动架构和分布式服务。

发布于: 2020 年 07 月 01 日阅读数: 57
用户头像

王鹏飞

关注

还未添加个人签名 2019.06.11 加入

还未添加个人简介

评论

发布
暂无评论
浅谈互联网系统架构