温馨提示×

linux kafka如何生产消息

小樊
38
2026-10-25 20:16:43
栏目: 智能运维

在 Linux 环境下使用 Kafka 生产(发送)消息,常见方式有 命令行工具 和 编程客户端(如 Java / Python)。下面按使用频率从高到低说明。


一、使用 Kafka 自带命令行生产消息(最常用)

1. 前提条件

  • 已安装 Kafka
  • Kafka 服务已启动
  • Topic 已创建(如 test-topic)

创建 Topic(示例):

bin/kafka-topics.sh \
  --create \
  --topic test-topic \
  --bootstrap-server localhost:9092 \
  --partitions 1 \
  --replication-factor 1

2. 使用控制台生产者发送消息

bin/kafka-console-producer.sh \
  --topic test-topic \
  --bootstrap-server localhost:9092

执行后进入交互模式,直接输入消息并回车:

hello kafka
this is a message

按 Ctrl+C 退出。


3. 从文件或管道生产消息

从文件发送:

cat messages.txt | bin/kafka-console-producer.sh \
  --topic test-topic \
  --bootstrap-server localhost:9092

单行一条消息。


4. 带 Key 发送消息(可选)

bin/kafka-console-producer.sh \
  --topic test-topic \
  --bootstrap-server localhost:9092 \
  --property "parse.key=true" \
  --property "key.separator=:"

输入格式:

user1:hello
user2:world

二、使用 Java 生产消息(生产环境常用)

1. 引入依赖(Maven)

<dependency>
  <groupId>org.apache.kafka</groupId>
  <artifactId>kafka-clients</artifactId>
  <version>3.6.0</version>
</dependency>

2. 示例代码

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();

三、使用 Python 生产消息(常用)

1. 安装库

pip install kafka-python

2. 示例代码

from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers='localhost:9092')

producer.send('test-topic', value=b'hello kafka')
producer.flush()
producer.close()

四、常见问题排查

1. 连接失败

  • 检查 bootstrap-server 地址
  • 检查防火墙 / 云安全组
  • 检查 Kafka 是否监听 0.0.0.0

2. Topic 不存在

  • 开启自动创建(不推荐生产)
  • 或手动创建 Topic

3. 消息没消费到

  • 确认消费者 group 正确
  • 确认 topic / partition 正常

五、总结

方式 适用场景
console-producer 测试、调试
Java Producer 生产环境
Python Producer 脚本、轻量应用

如果你有 具体 Kafka 版本 / 集群环境 / 使用语言,我可以给你更精确的示例。

0 踩