参考答案
Kafka不支持读写分离的原因:
在 Kafka 中,生产者写入消息、消费者读取消息的操作,都是与 leader 副本进行交互的,实现的是一种主写主读的生产消费模型。
Kafka 不支持主写从读,主写从读有两个缺点:
1. 数据一致性问题
- 数据从主节点转到从节点必然会有一个延时的时间窗口,这个时间窗口会导致主从节点之间的数据不一致。
- 某一时刻,在主节点和从节点中 A 数据的值都为 X, 之后将主节点中 A 的值修改为 Y,那么在这个变更通知到从节点之前,应用读取从节点中的 A 数据的值并不为最新的 Y,由此便产生了数据不一致的问题。
2. 延时问题
- 类似 Redis 这种组件,数据从写入主节点到同步至从节点中的过程,需要经历:网络→主节点内存→网络→从节点内存这几个阶段,整个过程会耗费一定的时间。
- 而在 Kafka 中,主从同步会比 Redis 更加耗时,它需要经历:网络→主节点内存→主节点磁盘→网络→从节 点内存→从节点磁盘这几个阶段。对延时敏感的应用而言,主写从读的功能并不太适用。
以上,是 Kafka 面试题【Kafka不支持读写分离的原因是什么】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—