조현욱*_*조현욱 1 apache-kafka kafka-consumer-api
我现在正在研究 Kafka java api。在关于消费者的内容中,我经常看到ConsumerRecords。我想确切地知道键和值的含义。我已经阅读了官方文档,但我找不到答案。请分享你的智慧。
您可以将 Kafka 主题中的每条记录视为一个键值对。默认情况下,密钥用于将消息路由到该主题的特定分区。让我们举个例子。假设我们有一个cars有 4 个分区的主题。现在,我们将以下消息(K,V 对)推送到该主题。
Kafka 将为这些消息中的每一个做的是计算分区的键模数的散列。因此,消息 1 将转到分区号。hashCode(sedan) % 4的cars。消息 2 将转到分区号。hashCode(suv) % 4, 等等。如果你没有指定任何键,即键为空,那么根据默认的分区策略(例如循环),Kafka 会为消息分配一个分区。在这种情况下,消息将如下所示:
现在,消息 1、2、3 和 4 将分配给分区号。0, 1, 2 和 3。如果您指定一个键,并且您想用自己的键覆盖默认分区策略,Kafka 也允许您这样做。
| 归档时间: |
|
| 查看次数: |
978 次 |
| 最近记录: |