我理解Kafka中的leader和数据复制的概念,但我不理解为什么消费者和生产者在从分区写/读时总是路由到主节点,而不是能够从任何ISR(同步副本)读取
我认为,如果所有的消费者都被重定向到一个主节点,那么就需要更多的硬件来处理来自大型消费者组/生产者的读/写操作。
是否有可能在副本节点上读写,或者消费者/生产者将始终到达该分区的主节点?
在Kafka中,我们有一个分区的Leader和Follower的概念。
一个特定分区的所有读/写都通过该分区的'Leader'进行,'Follower'与'Leader'同步更新。
在Kafka中,生产者/消费者或任何客户端应用程序将始终与分区的'Leader'通信。
如果一个Leader因为某种原因死亡,那么新的Leader将从ISR(同步副本列表)中选出
ISR:拥有所有更新或与Leader同步的Replicas/follower将被选为分区的新Leader。
更多细节:https://medium.com/nerd-for-tech/apache-kafka-quick-start-1edeef53773e