服务切换方案

服务切换方案

在服务维护过程中,经常会遇到服务器故障(磁盘崩盘,好吧,是否考虑优化log输出?)、或者DB故障,悲催的我们,需要做服务迁移。那么我们怎么达到在不影响服务的情况下进行迁移呢?本篇幅主要针对DB故障。

假定服务A 有两个数据库:M(master)---------->S(slave)

  1. master 切换到slave
    服务往M中写,此时M发生故障了,需要切换到S,那么如果你的db是采用域名进行管理,那么需要将域名指向S,如果你的服务有自动重连机制,那么此时你的服务也不需要重启。注意需要检查A是否有权限访问S。
    此时是否万事大吉?有没有注意到切换到slave 服务是单点DB,风险很大,一旦出问题那么全部崩盘。 所以我们需要做一个S的slave出来使得:
    S(master)---->NS(slave)
    好,slave NS做好了,由于服务器负载问题,NS性能会好一些,所以考虑将服务切换到NS。那么此时我们又该如何处理?
  2. master—–>slave
    1. 首先重新将域名指向NS,(如果服务没有重连机制,那么需要重启服务)。
    2. 查看master——>slave 数据是否延迟,可以在master 插入一条数据,再查询slave(NS)上的db是否有该数据
    3. 第二步正常那么此时可以切断S–>NS(因为S现在基本上是作废了,没有数据从NS同步到S)
坚持原创技术分享,您的支持奖鼓励我继续创作!