极简单系列-kafka 消费

第一个问题:
极简单系列-kafka 消费
Push 很难适应消费速率不同的消费者,因为消息发送速率是由 broker 决定的。 它的目标是尽可能以最快速度传递消息,但是这样很容易造成 consumer 来不及处理消息, 拒绝服务以及网络拥塞。而 pull 模式则可以根据 consumer 的消费能力以适 当的速率消费消息。 pull 模式不足之处是,如果 kafka 没有数据,消费者可能会陷入循环中,一直返回空数 据。针对这一点,Kafka 的消费者在消费数据时会传入一个时长参数 timeout,如果当前没有 数据可供消费,consumer 会等待一段时间之后再返回,这段时长即为 timeout。


极简单系列-kafka 消费
极简单系列-kafka 消费
极简单系列-kafka 消费


range

极简单系列-kafka 消费
极简单系列-kafka 消费

极简单系列-kafka 消费
极简单系列-kafka 消费


读取分区配置

极简单系列-kafka 消费

极简单系列-kafka 消费
极简单系列-kafka 消费


极简单系列-kafka 消费
极简单系列-kafka 消费
极简单系列-kafka 消费
由于 consumer 在消费过程中可能会出现断电宕机等故障,consumer 恢复后,需要从故 障前的位置的继续消费,所以 consumer 需要实时记录自己消费到了哪个 offset,以便故障恢 复后继续消费。 Kafka 0.9 版本之前,consumer 默认将 offset 保存在 Zookeeper 中,从 0.9 版本开始, consumer 默认将 offset 保存在 Kafka 一个内置的 topic 中,该 topic 为__consumer_offsets

极简单系列-kafka 消费
极简单系列-kafka 消费
极简单系列-kafka 消费
极简单系列-kafka 消费


极简单系列-kafka 消费