美文网首页
docker搭建kafka

docker搭建kafka

作者: GaryChiu被注册 | 来源:发表于2019-05-08 18:47 被阅读0次
    写在前面

    在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题:想分析一下用户行为,一遍我能设计出更好的广告位,相对用户的搜索关键字尽心统计,分析出前卫的流行趋势,有些数据存数据库浪费,直接存硬盘操作效率又低。kafka在这样的场景下就是个不错的选择。

    第一步 搭建zookeeper环境

    在centos中,拉取zookeeper镜像,以及创建zookeeper容器:

    docker pull zookeeper
    docker run -d -p 2181:2181 -v /mysoft/zookeeper/data/:/data/ --name=zookeeper  --privileged zookeeper
    

    注:此文采用的单例,而非集群,如需集群 读者请自行创建.

    第二步 创建kafka环境

    在centos中,创建kafka容器:

    docker pull wurstmeister/kafka
    docker run  -d --name kafka -p 9092:9092  --env KAFKA_ADVERTISED_HOST_NAME=localhost  -e KAFKA_ZOOKEEPER_CONNECT=192.168.9.219:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.9.219:9092  -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"  --net=host wurstmeister/kafka 
    

    注:由于docker kafka版本不断迭代,KAFKA_ADVERTISED_HOST_NAME 不再建议是用localhost/127.0.0.1,故需要使用KAFKA_ADVERTISED_HOST_NAME= ip地址

    第三步 验证kafka是否正确安装

    进入到kafka容器中 并创建topic 生产者,执行如下命令:

    docker exec -it kafka bash
    cd /opt/kafka_2.11-2.0.0/bin/
    ./kafka-topics.sh --create --zookeeper 192.168.9.219:2181 --replication-factor 1 --partitions 8 --topic test
    ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
    

    执行上诉命令后,另起一个标签页,执行如下命令 创建kafka消费者消费消息:

    docker exec -it kafka bash
    cd /opt/kafka_2.11-2.0.0/bin/
    ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    

    执行完上诉命令后,在生产者窗口中 输入任意内容回车,即可在消费者的窗口查看到消息

    第四步 搭建kafka管理平台

    kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作。具体支持以下内容:

    • 管理多个集群
    • 轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发)
    • 运行首选副本选举
    • 使用选项生成分区分配以选择要使用的代理
    • 运行分区重新分配(基于生成的分配)
    • 使用可选主题配置创建主题(0.8.1.1具有与0.8.2+不同的配置)
    • 删除主题(仅支持0.8.2+并记住在代理配​​置中设置delete.topic.enable = true)
    • 主题列表现在指示标记为删除的主题(仅支持0.8.2+)
    • 批量生成多个主题的分区分配,并可选择要使用的代理
    • 批量运行重新分配多个主题的分区
    • 将分区添加到现有主题
    • 更新现有主题的配置

    在centos中,执行如下命令拉取镜像,创建对应容器,以及打开防火墙:

    docker pull sheepkiller/kafka-manager
    docker run -it -d --rm  -p 9000:9000 -e ZK_HOSTS="192.168.9.219:2181" --net=host sheepkiller/kafka-manager
    firewall-cmd --add-port=9000/tcp
    

    创建成后,在浏览器中访问 `http://192.168.9.219:9000

    读者通过配置 zookeeper集群 以及kafka版本,进行操作kafka

    本文的配置
    Zookeeper Hosts:192.168.9.219:2181
    Kafka Version: 0.8.2.2

    如果读者验证过第三步,可以发现在右上角的菜单consumer发现有一个消费者。

    附录:

    查看消息主题列表:

     ./kafka-topics.sh --list --zookeeper zookeeper:2181 test
    

    查看指定topic信息:

    ./kafka-topics.sh --describe --zookeeper zookeeper:2181 --topic test
    

    原文:https://blog.csdn.net/belonghuang157405/article/details/82149257

    相关文章

      网友评论

          本文标题:docker搭建kafka

          本文链接:https://www.haomeiwen.com/subject/htivoqtx.html