写点什么

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?

发布于: 2020 年 12 月 19 日
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?

要了解一个典型的互联网应用系统架构使用了那些关键的技术点以及架构设计模式,首先要了解互联网应用的核心特点。相比于传统应用来讲,互联网应用更加关注如何才能保证系统7×24小时不间断运行,系统如何才能快速迭代开发满足业务变化抢占市场,系统如何才能更加稳定简单的运维,系统如何才能在最小的成本下提供更高的访问和计算能力。

了解了核心特点后,相应的挑战也就自然而来。为了快速抢占新兴市场或者某一领域,系统的快速迭代,系统的稳定持续运行,系统对用户无感知升级,对于硬件的把控,对于硬件后续带来的流量问题的把控。那么总结一下。

互联网系统架构的挑战:

1,高并发 大流量

2,高可用 7×24-用户无感知的升级

3,海量数据

4,用户分布广泛,网络情况复杂

5,安全环境恶劣

6,需求快速变更 发布频繁-微服务架构

7,渐进式发展-从一个小应用到一个小网站开始



核心挑战:高并发

以上总结的挑战或者问题中,我们更加关注的或者说更加核心的挑战还是高并发,因为互联网系统或者说业务的特点,快读更迭,快速的吸引流量,快速的抢占市场,继而扩大规模持续引流。

应对高并发两个技术方向:

1,垂直伸缩:

增强单一服务器计算能力(更好的cpu 硬盘 内存)

缺点:

1,一开始计算成本和经济成本是线性增加,需要更换小型机或者中型服务器的时候,提升能力和成本不成比例。

2,有物理极限

3,操作系统制约着资源和应用程序(也有自己的极限)

总结:一般情况下不会用垂直伸缩(水平伸缩带来的复杂性或者不能更好的解决的时候会使用垂直伸缩)



2,水平伸缩:

通过增加服务器来增强计算能力

缺点:

1,再某一个点前,水平伸缩要比垂直伸缩成本高。

2,对架构和开发提出了挑战



两种伸缩模式的对比图:





技术方向确定下了了,那么一个典型的互联网系统架构的手段或者模式我们也可以大概的总结一下了:

架构模式

每一个模式描述了一个在我们周围不断发生的问题以及解决问题的方案核心。

模式的关键在于可重复性,问题与场景带来的解决方案的可重复使用。

互联网架构模式就是描述为了解决互联网系统高性能,高可用,易扩展,可伸缩,安全等目标。这些解决方案是互联网软件系统的重要组成部分。

1,分层

将系统在横向维度上切分成几个部分,每一个部分都有单一的职责,然后上下层以来调用组成完整系统。

不同的层次可以分布式部署,部署在不同的服务器上

视图层 存储层...

2,分割

纵向切分,系统越大功能越复杂,服务和数据处理的种类越多,将这些服务分割开来,包装成独立低耦合的模块单元,一方面利于维护,一方面便于独立分布式部署,提高扩展能力。

订单 支付 购物车...

横向切完纵向切

3,分布式

对于大型网站,分层和分割目的就是切分后便于分布式部署。将不同的模块部署在不同的服务器上,通过远程调用协同工作。分布式意味着解决同样的问题可以使用可多的计算机,更多的处理资源,可以处理更多的并发访问量和数据量。

4,集群

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

集群中每台服务器的职责是一样的 这个是和分布式的区别

5,缓存

CDN 反向代理 本地缓存 远程缓存

6,异步

计算机软件发展的一个重要目标就是降低软件的耦合性。事物之间越少直接关系,那么彼此越少被影响,月可以独立发展。大型网站架构中,系统解耦手段除了分层 分割 分布还有一个重要的手段就是使用异步,将一个业务操作分为多个阶段,每个阶段之间通过共享数据而不是直接调用的方式进行协作。

提高系统可用性 加快响应速度 消除并发访问高峰

7,冗余

服务器冗余运行 数据冗余备份

8,自动化

目前互联网自动化架构设计主要集中在运维方面

9,安全架构模式

身份认证 登录交易加密 敏感信息加密 验证码 XSS攻击 SQL注入 编码转换 垃圾信息过滤 交易风控



总结:

以上列举的架构模式中,分层和分割模式是为了对整体架构进行拆分,拆分成小模块之后使用分布式模式进行部署,解决了系统之间耦合过高代码或者功能不容易复用的问题。

分布式和集群架构模式解决了系统扩展性,计算资源不足,无法提供更大的并发能力的问题。

缓存架构模式解决了数据库压力,进一步提高了系统并发能力的问题。

异步架构模式解决了相应延迟,由信息调用变为信息共享,一定程度上减少了并发期流量高峰问题,也提高了系统的可用性。

冗余架构模式保证了系统的可用性,是维持系统7×24的必要手段。



用户头像

打工人打工魂,打工都是人上人! 2020.10.30 加入

还未添加个人简介

评论

发布
暂无评论
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?