mysql - 在 HA 环境下切换 DNS 的问题

标签 mysql dns redis high-availability

当我使用DNS服务器 + redis/mysql master/slave作为HA部署时,我发现有两个问题:

  1. redis/mysql master 失败时,我将 slave 提升为新的 master(sentinel for redismha for mysql),由于DNS缓存的存在,域名更改可能会滞后,但我们可以减少DNS ttl或关闭nscd服务。

  2. 长连接可能会一直连接到旧的 master(如果连接没有重新连接),这会导致问题。

我的想法:

将域名更改为新的master ip地址后,我们需要终止所有现有连接(客户端将重新连接并连接到新的master)或关闭原来的master。

有没有更好的方法?

最佳答案

如果两个节点在同一个数据中心,你可以使用 VIP(虚拟 IP),然后使用 corosync 将 VIP 移动到 master。 ,它几乎是“即时”的故障转移。

如果节点在两个不同的数据中心,我想你可以使用 ProxySQL ,不过我还没有测试过 ProxySQL。

关于mysql - 在 HA 环境下切换 DNS 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40212574/

相关文章:

php - 我不知道的 mySQLi 数据库错误,首先这个查询运行正常但现在不工作

mysql - 单一关系 M :N for unknow element number

python - 为什么 dnspython 模块会给出 LifetimeTimeout 错误?

jquery - 如何编辑外域iframe的内容?

sorting - Redis 排序集合

java - 使用 hibernate 更新 fk

mysql - 使用 GROUP_CONCAT 查询

apache - 使用主机名访问 Docker 容器中的 Apache 服务器

docker - redis.conf 在官方 docker 镜像中的位置是什么?

docker - 如何在docker容器中启动redis服务器