Kafka Docker Compose 单机

什么是Kafka

Kafka是一个分布式流处理平台,主要用于实时数据的处理和分析。它具有高可用性、高性能和可伸缩性的特点,被广泛应用于日志收集、消息队列等场景。

为什么使用Docker Compose

Docker Compose是Docker的一个工具,用于定义和运行多容器的Docker应用。通过Docker Compose,我们可以方便地定义Kafka集群的配置,并快速启动容器化的Kafka应用。

在单机上运行Kafka

下面我们将演示如何使用Docker Compose在单机上运行一个简单的Kafka集群。

步骤一:准备Docker Compose文件

首先,创建一个名为docker-compose.yml的文件,并添加以下内容:

version: '3'

services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

步骤二:启动Kafka集群

在终端中执行以下命令,启动Kafka集群:

docker-compose up -d

步骤三:验证Kafka集群

使用Kafka的命令行工具kafka-console-producer.shkafka-console-consumer.sh,分别向Kafka发送消息和消费消息。以下是示例命令:

# 向Kafka发送消息
docker exec -it kafka /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

# 消费Kafka消息
docker exec -it kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

序列图示例

下面是一个简单的Kafka消息发送和消费的序列图:

sequenceDiagram
    participant Producer
    participant Kafka
    participant Consumer

    Producer->>Kafka: 发送消息
    Kafka->>Consumer: 接收消息

饼状图示例

下面是一个简单的Kafka消息分布饼状图:

pie
    title Kafka消息分布
    "Topic A" : 40
    "Topic B" : 30
    "Topic C" : 20
    "Others" : 10

结论

通过本文的示例,我们学习了如何使用Docker Compose在单机上运行Kafka集群,并验证了Kafka的消息发送和消费功能。希望本文能够帮助读者更好地理解Kafka和Docker Compose的使用方法。