1

我正在构建一个 Django 应用程序,它使用 PostgreSQL 进行数据存储,使用 Redis 和 Django Redis Cache 进行 Django 会话存储。我还将 RQ 用于异步作业队列。我已经构建了应用程序,以便我的 PostgreSQL 数据库驻留在单独的服务器上。我有两个问题:

  1. Redis 和 Django Redis Cache 应该都安装在我的 Django Web 服务器上,因为它们正在处理会话存储,还是应该将它们安装在我的数据库服务器上,因为它们提供类似数据库的功能?
  2. RQ 应该安装在 Web 服务器还是数据库服务器上?我认为它应该与 Redis 安装在同一台服务器上,但我不确定。

谢谢。

4

1 回答 1

0

假设你真的只有两台机器可以使用,我会说 Web 服务器上的 Redis 和数据库服务器上的 RQ。

靠近其消费者的缓存和其他地方的非延迟关键 RQ。

但是,如果您在调用 Redis 之前有一个内存缓存,那么我建议您也将 Redis 放在 db 服务器上,以便为 Web 服务器释放所有可用的 cpu 周期。

当然,在理想情况下,这些服务中的每一个都将位于单独的主机上,您可以相应地调整大小(想想亚马逊风格的无缝升级)。首先,它们甚至可以位于相同的物理主机上,但使用合适的主机别名进行识别,以避免在您的代码中构建过多的托管假设。

如果可以的话,完全同意 docker 和 ansible 是很好的选择。

于 2016-03-29T00:54:52.857 回答