如何部署辅助/备用 Discourse?

大家好。
如何部署备用/待命的 Discourse?
我认为这是一个很常见的话题,但我找不到任何相关信息。

在我看来,这样的待命 Discourse — 我也是这样尝试设置的 — 将运行在一个从节点/只读节点上,对 Redis 和 pgSQL 都是只读的。但是 Discourse 启动失败,出现以下错误:

Redis::CommandError: ERR Error running script (call to f_bcec1d9b3bbcfb089dc0b7316771be9f011872b6): @user_script:8: @user_script: 8: -READONLY You can’t write against a read only replica.

即使设置了 DISCOURSE_SKIP_BOOTSTRAP=yes

你们是怎么做的 — 这都是在容器中进行的 — 是否有可能实现我正在尝试的这种待命 Discourse,或者其他方法 — 实现高可用(HA)设置?

如果你想要高可用性(ha),那么你需要配置 PostgreSQL 进行复制,也许还需要配置 Redis,不过重新启动一个新的 Redis 并不是什么大问题。

关于设置 PostgreSQL 复制的指南可以在其他地方找到。或者你可以让 RDS 来为你处理。

然后你需要配置两个 web_only 容器(从独立容器迁移到独立的 Web 和数据容器)。

之后你需要配置 HAProxy 或其他工具来处理切换。

这已经超出了在这里能获得的帮助范围,除非你在 Discourse 的相关部分遇到了困难。

据我所知,没有官方的非第三方技术可以实现多主 pgSQL,更不用说应用于 Redis 了。

是否真的无法告知 Discourse 这样的环境,并告诉它不要担心并|忽略它?
如果不行,并且 @devel 看到此消息,那么我建议——我想很多人会赞赏——以这种方式“增强”Discourse——这样它就可以进行所有必要的检查,但不会失败,而是启动并运行在这样的只读“数据”上。