JoyAI Kafka项目Demo Docker-compose
·
想搞Kafka项目Demo?没问题,我给你整一个简单上手的方案,不用愁。
先说重点:推荐用 Docker 快速搭环境,省时省力。
1. 用 Docker 快速启动 Kafka(最省事)
直接在项目根目录建个 docker-compose.yml,内容如下:
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
运行命令:
docker-compose up -d
搞定!Kafka 和 Zookeeper 就跑起来了。
2. 创建测试 Topic
进入 Kafka 容器执行命令:
docker exec -it kafka kafka-topics.sh --create --topic test-topic --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
3. Python 示例(生产者 + 消费者)
生产者(producer.py):
from kafka import KafkaProducer
import json
producer = KafkaProducer(bootstrap_servers='localhost:9092', value_serializer=lambda v: json.dumps(v).encode('utf-8'))
producer.send('test-topic', {'msg': 'Hello Kafka!'})
producer.flush()
消费者(consumer.py):
from kafka import KafkaConsumer
import json
consumer = KafkaConsumer('test-topic', bootstrap_servers='localhost:9092', value_deserializer=lambda m: json.loads(m.decode('utf-8')))
for msg in consumer:
print("收到消息:", msg.value)
运行顺序:先跑消费者,再跑生产者,就能看到输出啦。
4. Java/Spring Boot 版本?
如果你用 Java,推荐用 Spring Boot + Spring Kafka,配置简单,集成方便。核心依赖:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
生产者和消费者用 @KafkaListener 和 KafkaTemplate 就能搞定,代码风格清爽。
要不要我帮你生成一个完整的项目模板?或者你更想用 Python 还是 Java?说一声,我直接给你打包发你。
更多推荐

所有评论(0)