在 Debian 上用 Kafka 生产者,一般分三步:装 Kafka → 启动服务 → 用生产者发消息。下面给你一个最实用、能直接跑的流程(以 Kafka 3.x 为例,自带 Zookeeper 的方式)。
sudo apt update
sudo apt install -y default-jdk wget
cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
sudo tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 kafka
cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
(新开一个终端)
cd /opt/kafka
bin/kafka-server-start.sh config/server.properties
bin/kafka-topics.sh \
--create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
查看 topic:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092
然后直接输入消息:
hello kafka
debian kafka test
按 Ctrl+C 退出
bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092 \
--property "parse.key=true" \
--property "key.separator=:"
输入格式:
user1:hello
user2:world
bin/kafka-console-consumer.sh \
--topic test \
--bootstrap-server localhost:9092 \
--from-beginning
pip install kafka-python
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='localhost:9092')
producer.send('test', b'hello from python')
producer.flush()
listeners=PLAINTEXT://localhost:9092auto.create.topics.enable=true
如果你是用 Docker / systemd / 集群 / PHP / Go,告诉我我给你对应版本。