多活高可用服务 MAS-single-read-async-double-write(单边读异步双写)

时间:2023-12-27 16:15:08

single-read-async-double-write(单边读异步双写)

使用须知:另起线程进行数据同步,不能保证异步写成功、不能保证两端数据的一致性。

图1 single-read-async-double-write部署图

读写指定异步双写,适用于读多写少场景,使用sdk同步两个redis,一条写命令会先在指定redis上执行,成功后,异步写到另一端。

本地读异步双写场景具体操作:

  • 对于用户,不感知多个redis。
  • 对于SDK
    • 读操作:同步路由到到指定的redis。
    • 写操作:同步路由到指定的redis,同时异步发送到远端redis。

此场景下可切换指定的redis。

  1. 当不同实例内SDK操作同一个redis key时,不能保证两个redis的一致性。
  2. 当SDK发生redis切换时,切换前产生的异步双写命令和切换后主流程写操作同一个redis的key时,两者不保证顺序:即有主流程写的值被异步双写覆盖。
  3. spop命令双写不适用。

support.huaweicloud.com/devg-mas/mas-devg-0097.html