目录

  • 一: 目前的业务问题
  • 二:如何平衡主从不同步和业务隔离?
  • 三:解决方案


一: 目前的业务问题

  • 业务A会跑一些规则, 跑完会把规则结果信息落地(落地到主库), 然后会通过TDMQ消息队列, 通知下游服务去消费这些数据。
  • 业务B会订阅业务A的主题, 然后根据通知信息, 查询业务A的落地数据(查询从库), 然后处理自己的核心业务。
  • 问题:从业务A发布消息, 业务B订阅到消息, 然后查询业务A的从库信息, 这个过程非常快, 导致主库数据还没同步给从库呢, 此时业务B就会异常。

二:如何平衡主从不同步和业务隔离?

  • 主从不同步:
  • 对数据时效性要求非常高,读写一般都在主库。
  • 业务隔离:
  • 一般来说, 只有自己的核心业务可以读取主库, 其他的业务无论量大量小都应该读去我的从库, 因为随着时间的推移, 不知道后续的从业务的量有多大。

三:解决方案

  • 方案一:对于同部门来说, 协商是否可以读取主库。 (互相知道对方的使用量级, 确保不会影响主库使用)
  • 方案二:业务B还是读取从库, 只不过自己要新增重试逻辑。