• 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

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

  • 相关阅读:
    .Net Core中无处不在的Async/Await是如何提升性能的?
    (11)点云数据处理学习——Colored point cloud registration(彩色点注册)
    产品经理面试考查的是什么?
    55、MINE: Towards Continuous Depth MPI with NeRF for Novel View Synthesis
    Cuda三维纹理的使用
    数据结构作业:传输数据的增删改
    C++使用TinyXml(开源库)读取*.XMl文件
    Python:实现recursive insertion sort递归插入排序算法(附完整源码)
    使用JSAPl来做一个倒计时的效果
    继苹果、联发科后,传高通下一代5G芯片将由台积电以3纳米代工
  • 原文地址:https://blog.csdn.net/suntiger/article/details/133987396