Apache Kafka是一个分布式流处理平台,用于构建高性能、可扩展的实时数据流应用程序。本文将介绍如何使用Docker容器化技术来安装和配置Apache Kafka。
docker pull wurstmeister/kafka
docker images
docker run -d --name kafka --publish 9092:9092 \ --link zookeeper \ --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ --env KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 \ --env KAFKA_ADVERTISED_PORT=9092 \ wurstmeister/kafka
docker ps
sudo docker exec -it kafka /bin/bash
cd opt/kafka_2.13-2.6.0/bin
创建topic
./kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 8 --topic test Created topic test.
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
sudo docker exec -it kafka /bin/bash cd opt/kafka_2.13-2.6.0/bin/ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning #若不想从头消费就使用 ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
这样就能接受到生产着生产的数据了
#查看 ./kafka-topics.sh --list --bootstrap-server ZK地址:端口
./kafka-topics.sh --list --bootstrap-server localhost:9092
#删除 ./kafka-topics.sh --delete --bootstrap-server ZK地址:端口 --topic topic名
./kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic local_point
首先,确保你的系统已经安装了Docker和Docker Compose。你可以根据操作系统的不同,按照官方文档的指引进行安装。
在你的项目目录下创建一个名为`docker-compose.yml`的文件,并添加以下内容:
services:
zookeeper:
image: confluentinc/cp-zookeeper:6.2.0 ports:
- "2181:2181"
environment:
- ZOOKEEPER_CLIENT_PORT=2181 - ZOOKEEPER_TICK_TIME=2000 kafka:
image: confluentinc/cp-kafka:6.2.0 ports:
- "9092:9092"
environment:
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 depends_on:
- zookeeper```
打开终端,进入到包含`docker-compose.yml`文件的目录,并执行以下命令启动Kafka集群,如下命令Docker将会下载所需的镜像,并启动一个包含Zookeeper和Kafka的容器集群。
bashdocker-compose up -d
执行以下命令,查看Kafka集群的运行状态:如果所有容器都处于运行状态,则表示Kafka集群已成功启动。
bashdocker-compose ps
现在可以使用Kafka进行消息的发布和订阅。可以使用Kafka的命令行工具或者编程语言的Kafka客户端库来与Kafka集群进行交互。
如果想停止Kafka集群并清理相关的容器和资源,可以执行以下命令,Docker将会停止并删除相关的容器和网络。
bashdocker-compose down
结论:
通过使用Docker容器化技术,我们可以方便地安装和配置Apache Kafka,快速搭建一个可用的Kafka集群。这为我们开发和测试实时数据流应用程序提供了便利,同时也提供了良好的可扩展性和灵活性。