whatsapp的message service如果crash了queue里的数据怎么办

whatsapp的message service如果crash了queue里的数据怎么recover?

1 个赞

作为一个 stateful service,假设机器硬盘不会坏的情况,本地的 Queue 可以写 Log 来回复。如果机器硬盘会坏的话,可以额外使用 distributed log (Kafka) 系统来存这个 Log。

Kafka 可以设置 Min ISR (in sync replica). 所以master 坏了, 还有ISR 顶上。而且Kafka 本身就是写到log里的。

如果用redis 做pubsub queue的话, 也可以设置follower, 这样就算memory里的数据没了, follower 也可以顶上。 一般3个replica都挂的可能性很低。