我有一个在 Linux Nginx + uwsgi 上运行的 Python Web 应用程序。我目前在一台机器上运行它。我想将此设置迁移到集群。
我是集群新手。进行此迁移的步骤是什么。我们是否需要更改 Web 应用程序才能使相同的设置在集群上运行?
如果有人能给我提供一些与此相关的教程,我将不胜感激。
谢谢
答案1
这实际上取决于你对集群的定义以及你对集群的目的。对于 Web 应用程序,最常见的原因是分散负载或高可用性,因此我的回答基于假设你想要其中之一。
分散负荷
要将负载分散到多台机器上,最简单的方法是将数据存储(数据库、内存缓存等)移到另一台机器上。如果这还不够,您还需要 2 台服务器:一台作为应用服务器的副本,另一台作为负载均衡器,在两台应用服务器之间平衡负载。
冗余
如果您的目标是高可用性,那么您需要一个集群数据存储(例如 mysql 集群)和类似 pacemaker/corosync 的东西,以确保您的服务的 IP 在两个盒子中的一个上始终可用。
结合两者
“分散负载”设置还提供基本的高可用性,即使您失去一个应用服务器,服务仍将保持运行。为了获得更好的可用性,您可以集群负载均衡器,也许还可以集群数据存储。
概括
这只是你能做的一小部分事情。“集群”本身并不是目标,而是达到目的的一种手段。你真正想要实现的是什么?