我提议在 templates 文件夹中添加以下内容:
- postgres.master.yml
- postgres.slave.yml
- redis.master.yml
- redis.slave.yml
这样一来,Discourse 集群化以及围绕该主题的所有烦恼都将消失。
据我理解,Redis 容器由于消息总线的唯一事务限制无法直接复制,但似乎可以实现复制。
架构优势?
-
能够在主节点上引导启动(web.template.yml + web.template.yml + redis.master.yml),而仅在从节点上引导启动(web.template.yml + postgres.slave.yml + redis.slave.yml),无需回连主节点。这将显著减轻压力,并充分利用前置 Nginx 负载均衡器的能力。
-
在管理仪表板中实现雄心勃勃的 UI 集群化支持将成为可能!
Discourse 可以说是迄今为止创建的最先进的开源应用程序之一,感谢背后的团队打造出如此前沿的技术。