在 Linux 环境下使用 Kafka 生产(发送)消息,常见方式有 命令行工具 和 编程客户端(如 Java / Python)。下面按使用频率从高到低说明。
test-topic)创建 Topic(示例):
bin/kafka-topics.sh \
--create \
--topic test-topic \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
bin/kafka-console-producer.sh \
--topic test-topic \
--bootstrap-server localhost:9092
执行后进入交互模式,直接输入消息并回车:
hello kafka
this is a message
按 Ctrl+C 退出。
从文件发送:
cat messages.txt | bin/kafka-console-producer.sh \
--topic test-topic \
--bootstrap-server localhost:9092
单行一条消息。
bin/kafka-console-producer.sh \
--topic test-topic \
--bootstrap-server localhost:9092 \
--property "parse.key=true" \
--property "key.separator=:"
输入格式:
user1:hello
user2:world
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.6.0</version>
</dependency>
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
ProducerRecord<String, String> record =
new ProducerRecord<>("test-topic", "key1", "hello kafka");
producer.send(record);
producer.close();
pip install kafka-python
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='localhost:9092')
producer.send('test-topic', value=b'hello kafka')
producer.flush()
producer.close()
bootstrap-server 地址0.0.0.0| 方式 | 适用场景 |
|---|---|
| console-producer | 测试、调试 |
| Java Producer | 生产环境 |
| Python Producer | 脚本、轻量应用 |
如果你有 具体 Kafka 版本 / 集群环境 / 使用语言,我可以给你更精确的示例。