zenith-docs 1.0.0 Help

大型应用的架构概述

在当今数字化时代,大型应用的开发与部署已成为企业成功的关键要素。这些应用承载着庞大的用户流量、复杂的业务逻辑和海量的数据处理需求。为了有效应对这些挑战,构建一个可靠、可扩展且高性能的架构显得尤为重要。

大型应用的特点

large scale application features
  1. 高并发,大流量: 一个网站从小做到大,业务越来越大,积累的用户越来越多,网站的请求量也就越来越大。举例: 百度日均访问量达到 50亿+、腾讯QQ早就突破了 1 亿用户同时在线、淘宝双十一交易金额达到 2千多亿。

  2. 高可用: 必须保证网站稳定地向用户提供 7 * 24 小时不间断访问,服务器宕机也需要有用备用替换。

  3. 大数据: 通过大量服务器以及存储系统管理海量的数据,数据多了可以做大数据分析、用户画像、分析用户购买习惯、预测用户购买商品等等。

  4. 敏捷开发、快速迭代: 一般来说 1 到 2 周迭代一次。

  5. 用户体系庞大: 既然一个大网站的用户量是非常大的,用户可能分散在全国乃至全球。

  6. 可持续升级: 网站的演进是渐进的,不是一蹴而就的。需要随着业务的发展,不断迭代技术,而不是一上来就是高大上的设计或者面向大厂的设计。

  7. 安全防范: 要防范各种攻击,避免各种漏洞。

  8. 弹性扩展: 比如在双十一的时候,需要快速添加大量的服务器投入运行,而平时则不需要,可以随时减少。

  9. 吞吐量高,响应速度快: 一个系统数据量大了,响应速度会慢,影响用户体验。所以大型网站必须保障用户的每次请求都快速响应,背后是成百上千台服务器,但用户是不知道的。

设计宗旨

design purpose

在平时的开发中,对于项目架构的设计,需要注意:

  • 合久必分 :比如 MVC 架构就是系统拆分为 Model、View、Controller 三块。分层有利于代码的结偶和合理的工作划分。

  • 集群: 集群是实现高可用和负载均衡的手段,保障负载均衡的同时提升系统的可用性,相互容灾。

  • CDN :因为大型网站的用户是分散在全国各地,乃至全球各国,所以需要采用 CDN,不管用户在哪都能访问到相对较近的节点。

  • 分布式系统: 大型网站肯定是多系统、多模块、多中间件、多服务器等协同整合的一个整体。在分布式领域中,我们会接触到分布式架构、分布式文件系统、分布式锁、分布式事务、分布式配置、分布式限流以及日记收集加工分析等。

  • 异步: 一步是最常见的优化用户体验的一种方式。比如说用 Ajax、消息队列等技术进行代码解耦。

  • 业务分离: 将一些模块进行分离,独立出一个子系统来给专门的团队负责,为其他模块提供服务。

  • 数据备份: 不能因为宕机而导致数据丢失,要定期做冷热数据备份,提供系统的高可用性。

Last modified: 06 August 2024