39. 横向扩容
横向扩容
目前为止,我们介绍的大部分是单机优化的方案,但毕竟单机能承载的流量有限,应对大规模以及不断增长的流量,最终的方案是实现服务器集群部署,随时做好 系统横向扩容 的准备。
横向扩容(Horizontal Scaling),泛指用更多的节点支撑更大量的请求。在 Laravel 应用中,指的是把应用依赖的软件服务都独立到单独的机器上,并且按照可承受无限成长流量的目标进行配置。以 LaraBBS 为例子,我们主要依赖几个服务:
- Nginx Web 服务器
- PHP-FPM 脚本解析服务
- MySQL 数据库
- Redis 缓存
- Redis 队列
- 计划任务
接下来将单独演示拓扑结构。
PHP-FPM 集群
用户请求通过 Nginx 负载均衡服务器,按照算法将请求平均分配给 PHP-FPM 服务器,这些服务器可以随时增加数量以应对突增的流量:
MySQL 读写分离
这里我们做了数据库主从读写分离...