Kafka 的消费者究竟如何与服务器通信?

How exactly Kafka's consumer communicate to server?

  1. Kafka 消费者是否不断检查代理(Kafka 服务器)的健康状况,反之亦然?
  2. 无论如何,消费者和经纪人都知道彼此的健康状况,那么消费者从分区中读取数据的准确程度如何?
  3. 假设我有 48 个分区用于一个主题并且有两个消费者组,那么有多少线程将使用所有分区的数据?
  1. 消费者发送健康检查,以便经纪人知道消费者是否健康。 Brokers 的健康状况由 Controller 控制,它是在 Kafka 集群中的每个 broker 上运行的 Kafka 服务,但在任何时间点只有一个可以处于活动状态(被选中)。
  2. 有关详细说明,请参阅 this 视频。简而言之,组中的第一个消费者是领导者,并决定对同一组中其余消费者的分配。此数据被发送到代理并分发给消费者。
  3. 线程管理是你自己的责任。 KafkaProducerKafkaConsumer 都是单线程组件。