在我看来,消息队列的主从和mysql的主从本来就不一样
Mysql:主库写,从库只支持读,只需要主库写入数据从库同步就行
Kafka:主分区写,从分区同步。不能从从分区读是因为从从分区读可能会丢消息。
举例子来说:
当主分区写入消息,同步至从分区时:
如果有的从分区写入了,有的因为网络或者掉线没有写入成功。到第二条消息过来又需要同步时,这次某个第一次因为网络等原因未同步上的从分区这次又同步上了新消息,消费者如果从这个从分区消费,就会丢消息。
可能有人说,那我同步的时候,就要求给所有从分区全部同步后再给生产者返回结果不行吗?
倘若,有从分区所在机器挂了,同步就卡死在这了
展开