大家好。
如何部署备用/待命的 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)设置?
pfaffman
(Jay Pfaffman)
2023 年8 月 12 日 12:34
2
如果你想要高可用性(ha),那么你需要配置 PostgreSQL 进行复制,也许还需要配置 Redis,不过重新启动一个新的 Redis 并不是什么大问题。
关于设置 PostgreSQL 复制的指南可以在其他地方找到。或者你可以让 RDS 来为你处理。
然后你需要配置两个 web_only 容器(从独立容器迁移到独立的 Web 和数据容器 )。
之后你需要配置 HAProxy 或其他工具来处理切换。
这已经超出了在这里能获得的帮助范围,除非你在 Discourse 的相关部分遇到了困难。
据我所知,没有官方的非第三方技术可以实现多主 pgSQL,更不用说应用于 Redis 了。
是否真的无法告知 Discourse 这样的环境,并告诉它不要担心并|忽略它?
如果不行 ,并且 @devel 看到此消息,那么我建议——我想很多人会赞赏——以这种方式“增强”Discourse ——这样它就可以进行所有必要的检查,但不会 失败,而是启动并运行在这样的只读“数据”上。