disruptor容灾方案

如何判断主节点是否挂掉

1、Redis 心跳失联

  • 1.1、Redis 心跳是指:系统中的主服务(如撮合引擎)周期性地向 Redis 写入时间戳,表明“我还活着”。
  • 1.2、其他服务(例如灾备节点)会定期读取这个 key,比如每 5 秒查看一次,然后计算一下,如果大于5秒表示主服务挂掉了。
    2、Kafka Lag 太大
    3、服务注册中心宕机标记

容灾方案容灾方案

1、多个disruptor的撮合实例做主备方案。
2、多个disruptor的撮合实例同时监听同一个kafka主题。
3、多个撮合实例通过分布式锁(Redis、Zookeeper、Etcd)保证同时只能有一个实例消费kafka的数据,锁可以设置过期时间,避免死锁,成功抢占的节点每隔 5 秒续约锁。

  • 3.1、每分钟或固定时间快照一次撮合实例内存中的数据。
  • 3.2、每次消费数据后手动将offset保存到redis中。

4、所有节点定时尝试去获取锁。
5、当主节点挂掉之后,其他副节点抢到锁之后,先从redis中获取快照数据,然后继续消费kafka主题数据。

posted @ 2025-07-31 09:48  Charlie-Pang  阅读(2)  评论(0)    收藏  举报