互联网应用的架构
单体应用架构

单体应用架构是最早的应用程序开发与部署方式,在这种架构模式下,应用程序被构建为单个、独立的单元,所有的组件都运行在同一台服务器上,因此监控、维护和部署都相对简单。
由于所有的组件都在同一台服务器上运行,随着业务功能越来越复杂,应用程序可能会变得非常大,导致难以开发与维护,系统的可靠性和运行性能等难以保障;另外单体应用程序的水平扩展能力有限,当请求量增加时,可能需要增加更多的服务器来承担负载。
分布式架构

将传统的单体应用架构按功能模块进行拆分,例如一个电商应用可以拆分为会员模块、订单模块、支付模块、优惠券模块等,每个模块都是一个单体应用,从而降低系统耦合度,这些模块可以独立进行开发、部署与运行,能够非常方便地实现水平扩展。
由于应用程序中的各个模块相互依赖,因此整个系统需要进行整体性能监测,以确保整个模块的正常运行。此外随着应用程序规模的不断扩大,系统中的服务器数量也会逐渐增加,增加了监控、维护和管理的复杂性。
微服务架构

微服务架构是一种基于分布式架构的应用程序开发模式。在微服务架构中,应用程序被分解成许多小的、独立的服务。每个服务都可以单独部署和运行,可以独立地扩展和升级。微服务架构的优点在于提高了应用程序的可靠性、可维护性和性能。此外,微服务架构还使得应用程序更加灵活和可定制。
虽然微服务架构有很多优点,但它也具有一些挑战。在微服务架构中,由于应用程序被分解成许多小的、独立的服务,因此需要更多的部署、监控和管理工作。此外,微服务架构还需要更高的技术要求和更高的开发成本,因为需要同时开发多个服务并确保它们的协同性和互操作性。
架构的性能指标
应用系统架构设计的基本目标是要做到三高:高并发、高可用、高性能。
1、高并发:通常使用QPS/TPS来衡量系统对任务的处理能力。
- TPS(Transactions Per Second):每秒事务数,事务是一个包含增删改一系列操作的单一业务流程。
- QPS(Queries Per Second):每秒查询数,指一台服务器每秒能够响应的查询次数。
2、高可用:SLA(Service Level Agreement)是衡量一个系统可用性高低的指标,常用的有3个9(99.9%)、4个9(99.99%)和5个9(99.999%)。
- 时间维度:系统可以正常使用时间与总时间之比。例如:一年停机在1小时之内则可用性为4个9。
- 次数维度:请求总次数和失败的占比。例如:1000次请求最多只有1次失败,则可用性为3个9。
3、高性能:通常使用RT(Response Time)来衡量系统的响应速度。RT是指从客户端发一个请求开始,到客户端接收到服务器端返回的响应结果结束所经历的时间,时间越短性能越好。