diff --git a/docs/system-design/data-communication/Kafka入门看这一篇就够了.md b/docs/system-design/data-communication/Kafka入门看这一篇就够了.md index cd45e064..3fd42c5e 100644 --- a/docs/system-design/data-communication/Kafka入门看这一篇就够了.md +++ b/docs/system-design/data-communication/Kafka入门看这一篇就够了.md @@ -112,7 +112,8 @@ Kafka 的一个关键性质是日志保留(retention),我们可以配置 | --00000000000000368769.log | --00000000000000737337.index | --00000000000000737337.log - | --00000000000001105814.index | --00000000000001105814.log + | --00000000000001105814.index + | --00000000000001105814.log | --topic2-0 | --topic2-1 @@ -174,6 +175,7 @@ Kafka 的一个关键性质是日志保留(retention),我们可以配置 Kafka消费者是**消费组**的一部分,当多个消费者形成一个消费组来消费主题时,每个消费者会收到不同分区的消息。假设有一个T1主题,该主题有4个分区;同时我们有一个消费组G1,这个消费组只有一个消费者C1。那么消费者C1将会收到这4个分区的消息,如下所示: ![生产者设计概要](./../../../media/pictures/kafka/消费者设计概要1.png) + 如果我们增加新的消费者C2到消费组G1,那么每个消费者将会分别收到两个分区的消息,如下所示: ![生产者设计概要](./../../../media/pictures/kafka/消费者设计概要2.png) @@ -200,7 +202,7 @@ Kafka消费者是**消费组**的一部分,当多个消费者形成一个消 可以看到,当新的消费者加入消费组,它会消费一个或多个分区,而这些分区之前是由其他消费者负责的;另外,当消费者离开消费组(比如重启、宕机等)时,它所消费的分区会分配给其他分区。这种现象称为**重平衡(rebalance)**。重平衡是 Kafka 一个很重要的性质,这个性质保证了高可用和水平扩展。**不过也需要注意到,在重平衡期间,所有消费者都不能消费消息,因此会造成整个消费组短暂的不可用。**而且,将分区进行重平衡也会导致原来的消费者状态过期,从而导致消费者需要重新更新状态,这段期间也会降低消费性能。后面我们会讨论如何安全的进行重平衡以及如何尽可能避免。 -消费者通过定期发送心跳(hearbeat)到一个作为组协调者(group coordinator)的 broker 来保持在消费组内存活。这个 broker 不是固定的,每个消费组都可能不同。当消费者拉取消息或者提交时,便会发送心跳。 +消费者通过定期发送心跳(heartbeat)到一个作为组协调者(group coordinator)的 broker 来保持在消费组内存活。这个 broker 不是固定的,每个消费组都可能不同。当消费者拉取消息或者提交时,便会发送心跳。 如果消费者超过一定时间没有发送心跳,那么它的会话(session)就会过期,组协调者会认为该消费者已经宕机,然后触发重平衡。可以看到,从消费者宕机到会话过期是有一定时间的,这段时间内该消费者的分区都不能进行消息消费;通常情况下,我们可以进行优雅关闭,这样消费者会发送离开的消息到组协调者,这样组协调者可以立即进行重平衡而不需要等待会话过期。 diff --git a/media/pictures/kafka/消费者设计概要2.png b/media/pictures/kafka/消费者设计概要2.png index 0c7383f9..5ea1f290 100644 Binary files a/media/pictures/kafka/消费者设计概要2.png and b/media/pictures/kafka/消费者设计概要2.png differ diff --git a/media/pictures/kafka/消费者设计概要3.png b/media/pictures/kafka/消费者设计概要3.png index 741302da..0c7383f9 100644 Binary files a/media/pictures/kafka/消费者设计概要3.png and b/media/pictures/kafka/消费者设计概要3.png differ