一个单体应用的扩容之路

本文介绍了单体应用从垂直扩容、水平扩容到应用和数据库拆分,再到NoSQL和MQ集群引入的扩容过程。首先,通过硬件升级进行垂直扩容,然后采用负载均衡和数据库读写分离进行水平扩容。接着,按业务拆分应用,使用SOA框架解决服务间通信。随着流量增加,进行数据库垂直拆分、读写分离和水平拆分,并引入MongoDB和Redis集群。最后,利用MQ集群处理高并发写操作,实现流量削峰。
摘要由CSDN通过智能技术生成

一个单体应用的扩容之路

一、前言

对于一个初期的系统来说,功能较少,为了能够快速上线进行推广,此时一般会单体应用架构来进行开发。此时应用系统和数据库很可能都是部署在同一台服务器上。如下图所示。

image

对于这样的系统,经过一段时间的使用后,用户越来越多,网站的流量会增加,单台服务器无法处理那么大的访问流量。此时会使用分而治之的思想来解决问题。

  • 第一步,通过简单扩容来解决(如垂直扩容、水平扩容)。
  • 第二步,第一步搞不定,则通过水平拆分/垂直拆分应用/数据来提升系统性能。
  • 第三步,第二步还搞不定,那么根据现有系统特性,从架构层面进行重构甚至是重新设计(推倒重来)。

对于系统设计,理想情况下应支持线性扩容/弹性扩容,即在系统遇到瓶颈时,只需增加机器就能解决问题,如降低延迟提高吞吐量,从而实现扩容需求。

二、单体应用垂直扩容

当用户量开始增多,现有系统无法处理那么大访问流量,在成本不高的情况下,应该通过硬件扩容来解决。如升级现有服务器,4核8G升级为16核32G,磁盘扩容等。但不管怎么扩容,单机总会有瓶颈,而分布式技术是提升系统扩容能力的更好方法。

三、单体应用水平扩容

随着用户量越来越多&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值