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.sh
和kafka-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的使用方法。