• Linux下利用Docker快速部署Kafka


    1.摘要

    在本文中,介绍了利用Docker安装Kafka的基础环境要求; 利用Docker安装zookeeper过程; 利用Docker安装Kafka过程;进入容器配置生产者和消费者过程; 演示生产者和消费者通讯; 故障排查方法。

    2.基础环境准备

    提前准备一台安装Linux系统的主机或虚拟机,我这里安装的是Ubuntu 22.04.3 LTS版本。

    登录到Linux系统输入:docker -v 命令, 如果出现:

    Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1

    类似于这样的提示信息,说明Docker已安装,如果没有,请输入以下命令安装Docker:

    1. $ sudo apt update
    2. $ sudo apt install docker.io

    3.安装zookeeper

    在命令行直接输入以下命令,docker会自动拉取对应镜像:

    # docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper

    拉取过程如图:

    4.安装Kafka

    在命令行直接输入以下命令,docker会自动拉取对应镜像:

    # docker run  -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=[你的IP地址]:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://[你的IP地址]:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

    注意, 我的服务器IP是192.168.201.206,所以上面的IP要根据自己的实际情况进行变更,我变更后的命令如下:

    # docker run  -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.201.206:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.201.206:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

    拉取过程如图:

    5.进入容器

    Kafka安装完毕后,还要进入到容器中启动生产者和消费者,这样可以验证kafka功能是否正常,顺序执行命令如下:

    1. # docker ps -a                     #查看kafka镜像的容器ID
    2. # docker exec -it 容器ID /bin/sh     #进入到容器内部
    3. # cd /opt/kafka/bin                 # 切到容器内部kafka执行目录下

    执行最后的结果如图:

    6.启动生产者

    在容器里执行以下命令启动生产者:

    ./kafka-console-producer.sh --broker-list localhost:9092 --topic [你的topic名称]

    我这里自己起了一个topic名称,名字为test123, 如图:

    产生者脚本启动成功后,会有一个">"提示符。

    7.启动消费者

    为了看到生产者和消费者之间的消息传递效果,这里需要另开一个终端,按照上面的方法进入容器对应目录,并执行以下命令:

    ./kafka-console-consumer.sh --bootstrap-server [你的IP地址]:9092 --topic [你的topic名称]

    注意,这里有两个变量需要自己调整,一个是IP地址,另一个是上面建立的Topic名称, 我这里填入信息后的完整命令如下:

    ./kafka-console-consumer.sh --bootstrap-server 192.168.201.206:9092 --topic test123

    执行过程如图:

    8.生产者与消费者测试

    切换到生产者窗口,连续输入一些信息,如图:

    再切换回消费者窗口, 正常的话已经可以收到生产者发送的信息了,如图:

    9.故障排查

    如果在使用Docker过程中遇到任何错误, 可以命令:

    docker logs 容器ID

    通过查看容器日志进行故障排查,过程如图:

  • 相关阅读:
    【数据结构】红黑树
    如何安装 Elasticsearch
    【C++】类和对象 从入门到超神
    蓝桥杯KMP总结
    zookeeper四字监控命令
    前瞻|Java 21 新特性 String Templates(字符串模版)
    0-JavaSE总结索引
    线性代数与解析几何——Part4 欧式空间 & 酉空间
    设计模式 08 代理模式
    【LeetCode】经典的环形链表
  • 原文地址:https://blog.csdn.net/suntiger/article/details/133987396