Docker安装kafka并创建topic进行消息通信过程

 更新时间:2025年12月02日 08:48:55   作者:阳仔的屁仔  
本文介绍了如何使用Docker容器化技术来安装和配置Apache Kafka,并详细介绍了如何创建topic进行消息通信,通过Docker和Docker Compose两种方式,可以方便地搭建Kafka集群,并进行消息的发布和订阅

Docker安装kafka并创建topic进行消息通信

Apache Kafka是一个分布式流处理平台,用于构建高性能、可扩展的实时数据流应用程序。

本文将介绍如何使用Docker容器化技术来安装和配置Apache Kafka。

一、使用镜像安装

1、kafka安装必须先安装Zookpper

2、下载镜像

docker pull wurstmeister/kafka

3、查看下载好的镜像

docker images

4、启动Kafka

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

5、查看是否创建好Kafka容器

docker ps

6、进入到Kafka容器内

sudo docker exec -it kafka /bin/bash

7、创建topic

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.

8、创建成功之后发送消息

./kafka-console-producer.sh --broker-list localhost:9092 --topic test

9、重新打开一个终端,创建消费者

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

这样就能接受到生产着生产的数据了

10、查看、删除Kafka中的所有的topic

#查看 ./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 Compose安装

1. 安装Docker和Docker Compose

首先,确保你的系统已经安装了Docker和Docker Compose。你可以根据操作系统的不同,按照官方文档的指引进行安装。

2. 创建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```

3. 启动Kafka集群

打开终端,进入到包含`docker-compose.yml`文件的目录,并执行以下命令启动Kafka集群,如下命令Docker将会下载所需的镜像,并启动一个包含Zookeeper和Kafka的容器集群。

bashdocker-compose up -d

4. 验证Kafka集群是否正常运行

执行以下命令,查看Kafka集群的运行状态:如果所有容器都处于运行状态,则表示Kafka集群已成功启动。

bashdocker-compose ps

5. 使用Kafka

现在可以使用Kafka进行消息的发布和订阅。可以使用Kafka的命令行工具或者编程语言的Kafka客户端库来与Kafka集群进行交互。

6. 停止和清理

如果想停止Kafka集群并清理相关的容器和资源,可以执行以下命令,Docker将会停止并删除相关的容器和网络。

bashdocker-compose down

总结

通过使用Docker容器化技术,我们可以方便地安装和配置Apache Kafka,快速搭建一个可用的Kafka集群。

这为我们开发和测试实时数据流应用程序提供了便利,同时也提供了良好的可扩展性和灵活性。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker镜像Tag为none的原因及分析

    docker镜像Tag为none的原因及分析

    文章介绍了Docker镜像标签为none的原因及其处理方法,none标签的镜像可能有用,也可能无用,具体取决于是否有容器引用,建议在构建同名同tag的镜像前检查是否存在同名镜像,并注意强行删除镜像可能带来的问题,Docker没有自动删除none镜像的机制,需要手动删除
    2025-02-02
  • 清理Docker磁盘空间的几种有效方法

    清理Docker磁盘空间的几种有效方法

    随着Docker的广泛使用,管理Docker占用的磁盘空间变得越来越重要,长时间运行Docker环境,未使用的容器、镜像、卷和网络等会逐渐积累,占用大量磁盘空间,本文将介绍几种清理Docker磁盘空间的有效方法,需要的朋友可以参考下
    2024-08-08
  • docker中nginx的location转发不生效的解决

    docker中nginx的location转发不生效的解决

    这篇文章主要介绍了docker中nginx的location转发不生效的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • docker run的--rm选项使用说明

    docker run的--rm选项使用说明

    这篇文章主要介绍了docker run的--rm选项使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 解决docker容器设置DNS不生效的问题

    解决docker容器设置DNS不生效的问题

    文章主要介绍了如何在Docker中设置DNS,并通过两种方式(`docker run`和`docker-compose.yml`)进行了详细说明,虽然`docker run`方式可以成功设置DNS,但`docker-compose.yml`方式在某些情况下会导致DNS配置无效,因为容器的`/etc/resolv.conf`文件
    2025-01-01
  • Docker中的文件/文件夹的挂载映射方式

    Docker中的文件/文件夹的挂载映射方式

    通过命令行在宿主机与Docker容器间挂载和映射文件夹,实现数据共享,具体步骤包括:在宿主机创建文件夹并使用Docker命令将其挂载到容器指定位置,需注意容器名称与ID的使用差异
    2024-11-11
  • docker-maven-plugin 插件无法拉取对应jar包问题

    docker-maven-plugin 插件无法拉取对应jar包问题

    这篇文章主要介绍了docker-maven-plugin 插件无法拉取问题,总是报错,如何解决这个问题呢,下面小编给大家带来了解决方法,一起看看吧
    2021-09-09
  • 使用portainer连接远程docker的教程

    使用portainer连接远程docker的教程

    Portainer是一个轻量级的docker环境管理UI,可以用来管理docker宿主机和docker swarm集群,这篇文章主要介绍了使用portainer连接远程docker的方法,需要的朋友可以参考下
    2020-03-03
  • 详解docker nginx 容器启动挂载到本地

    详解docker nginx 容器启动挂载到本地

    这篇文章主要介绍了详解docker nginx 容器启动挂载到本地,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Docker部署Microsoft Sql Server详细步骤

    Docker部署Microsoft Sql Server详细步骤

    大家好,本篇文章主要讲的是Docker部署Microsoft Sql Server详细步骤,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论