如何使用 kafka 控制台生产者发送键值消息
How to send key, value messages with the kafka console producer
我有一个用例,我需要使用 Kafka Console Producer 发送键值消息。那么如何通过Kafka Console Producer
命令来实现呢?
经过一番研究,我找到了解决方案,解决方案就在这里。
kafka-console-producer 命令
kafka-console-producer.sh --broker-list localhost:9092 --topic topic-name --property "parse.key=true" --property "key.separator=:"
在 运行 执行此命令后,您将进入生产者控制台,然后您可以从那里发送键值消息。
例如
key1:value1
key2:value2
key3:value3
为了更清楚起见,我在这里提供示例键值消息,emp_info
是一个键,JSON object
是一个值。
emp_info: {"emp_id":100,"first_name":"Keshav","last_name":"Lodhi","designation":"DataEngineer"}
注意: 简单地发送文本行将产生带有 null
键的消息。为了使用 keys and values
发送消息,您必须在 运行 生产者时在命令行上设置 parse.key
和 key.separator
属性。
默认情况下,生产者不关心消息写入的主题分区,并将在主题的所有分区上公平地平衡消息。生产者根据记录键的哈希值选择分区,如果记录没有键,则以循环方式选择分区。
Kafka使用key指定目标分区。默认
策略是根据键的散列选择分区或使用
如果密钥为空,则循环算法。
Kafka使用键值对,如果没有指定键,默认为null,分区将被识别为循环方式。
如果我们指定键,messages/records具有相同的键进入相同的分区
要从命令行发送完整的键值对,我们需要使用以下两个属性:
属性
parse.key :如果为真 - 键是强制性的,默认设置为
假的。
key.separator : 如下
示例:
- key.separator=,
- key.separator=-
- key.separator=:
Kafka 控制台生产者命令
kafka-console-producer --broker-list MY-KAFKA:29092 --topic kafka-prod --property parse.key=true --property key.separator=,
参考:https://shashirl9.medium.com/kafka-producer-internals-d971ac582688
我有一个用例,我需要使用 Kafka Console Producer 发送键值消息。那么如何通过Kafka Console Producer
命令来实现呢?
经过一番研究,我找到了解决方案,解决方案就在这里。
kafka-console-producer 命令
kafka-console-producer.sh --broker-list localhost:9092 --topic topic-name --property "parse.key=true" --property "key.separator=:"
在 运行 执行此命令后,您将进入生产者控制台,然后您可以从那里发送键值消息。
例如
key1:value1
key2:value2
key3:value3
为了更清楚起见,我在这里提供示例键值消息,emp_info
是一个键,JSON object
是一个值。
emp_info: {"emp_id":100,"first_name":"Keshav","last_name":"Lodhi","designation":"DataEngineer"}
注意: 简单地发送文本行将产生带有 null
键的消息。为了使用 keys and values
发送消息,您必须在 运行 生产者时在命令行上设置 parse.key
和 key.separator
属性。
默认情况下,生产者不关心消息写入的主题分区,并将在主题的所有分区上公平地平衡消息。生产者根据记录键的哈希值选择分区,如果记录没有键,则以循环方式选择分区。
Kafka使用key指定目标分区。默认
策略是根据键的散列选择分区或使用 如果密钥为空,则循环算法。Kafka使用键值对,如果没有指定键,默认为null,分区将被识别为循环方式。
如果我们指定键,messages/records具有相同的键进入相同的分区
要从命令行发送完整的键值对,我们需要使用以下两个属性:
属性
parse.key :如果为真 - 键是强制性的,默认设置为 假的。
key.separator : 如下
示例:
- key.separator=,
- key.separator=-
- key.separator=:
Kafka 控制台生产者命令
kafka-console-producer --broker-list MY-KAFKA:29092 --topic kafka-prod --property parse.key=true --property key.separator=,
参考:https://shashirl9.medium.com/kafka-producer-internals-d971ac582688