想搞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>

生产者和消费者用 @KafkaListenerKafkaTemplate 就能搞定,代码风格清爽。


要不要我帮你生成一个完整的项目模板?或者你更想用 Python 还是 Java?说一声,我直接给你打包发你。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐