使用 Go 和 MySQL(故障转移)设置具有容错能力的服务器

Setting up servers with fault tolerance using Go and MySQL (failover)

我在一个项目中工作,我们使用 Go 作为网络服务器并且 MySQL。 我们被告知要实施容错来处理硬件崩溃。我们得到了 2 台服务器,其中有 MySQL 和它们上面的 Go-server。

我们已在 MySQL 中成功设置了复制,但我们正在努力处理故障转移部分。我们的想法是使用 HAProxy 获得一个额外的服务器来拥有一个主服务器,然后能够故障转移到备份服务器。 我们还考虑过使用 MySQL 故障转移,但没有看到我们如何使用它重定向流量。

这个方案合理吗?或者你会建议我们做什么?

如果您想要两个相同的服务器连接到它们的本地 MySQL 实例,您需要一种方法来确定哪个是生产服务器。有许多解决方案,包括

  • 设置一个反向代理,正如你提到的,但是,你的代理 本身就变成了单点故障,
  • 使用浮动 IP,也称为故障转移 IP,但这只有在您的主机支持时才有效。云供应商 通常支持它们,以及一些裸机服务器提供商。

据我所知,Go 没有什么特别之处。