• Kafka(Go)教程(一)---通过docker-compose 安装 Kafka


    本文记录了如何通过 docker-compose 快速启动 kafka,部署一套开发环境。

    1. 概述

    Kafka 是由 Apache 软件基金会旗下的一个开源 消息引擎系统

    使用 docker-compose 来部署开发环境也比较方便,只需要提准备一个 yaml 文件即可。

    Kafka 系列相关代码见 Github

    2. docker-compose.yaml

    完整的 docker-compose.yaml内容如下:

    当前 Kafka 还依赖 Zookeeper,所以需要先启动一个 Zookeeper 。

    这里用的是Kafka 2.8.0版本,其他版本不一定兼容。

    1. version: "3"
    2. services:
    3. zookeeper:
    4. image: 'bitnami/zookeeper:latest'
    5. ports:
    6. - '2181:2181'
    7. environment:
    8. # 匿名登录--必须开启
    9. - ALLOW_ANONYMOUS_LOGIN=yes
    10. #volumes:
    11. #- ./zookeeper:/bitnami/zookeeper
    12. # 该镜像具体配置参考 https://github.com/bitnami/bitnami-docker-kafka/blob/master/README.md
    13. kafka:
    14. image: 'bitnami/kafka:2.8.0'
    15. ports:
    16. - '9092:9092'
    17. - '9999:9999'
    18. environment:
    19. - KAFKA_BROKER_ID=1
    20. - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
    21. # 客户端访问地址,更换成自己的
    22. - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://123.57.236.125:9092
    23. - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
    24. # 允许使用PLAINTEXT协议(镜像中默认为关闭,需要手动开启)
    25. - ALLOW_PLAINTEXT_LISTENER=yes
    26. # 关闭自动创建 topic 功能
    27. - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=false
    28. # 全局消息过期时间 6 小时(测试时可以设置短一点)
    29. - KAFKA_CFG_LOG_RETENTION_HOURS=6
    30. # 开启JMX监控
    31. - JMX_PORT=9999
    32. #volumes:
    33. #- ./kafka:/bitnami/kafka
    34. depends_on:
    35. - zookeeper
    36. # Web 管理界面 另外也可以用exporter+prometheus+grafana的方式来监控 https://github.com/danielqsj/kafka_exporter
    37. kafka_manager:
    38. image: 'hlebalbau/kafka-manager:latest'
    39. ports:
    40. - "9000:9000"
    41. environment:
    42. ZK_HOSTS: "zookeeper:2181"
    43. APPLICATION_SECRET: letmein
    44. depends_on:
    45. - zookeeper
    46. - kafka

    镜像

    在 dockerhub 上 kafka 相关镜像有 wurstmeister/kafka 和 bitnami/kafka 这两个用的人比较多,大概看了下 bitnami/kafka 更新比较频繁所以就选这个了。

    监控

    监控的话 hlebalbau/kafka-manager 这个比较好用,其他的都太久没更新了。

    不过 kafka-manager 除了监控外更偏向于集群管理,误操作的话影响比较大,如果有 prometheus + grafana 监控体系的直接用 kafka_exporter 会舒服很多。

    另外 滴滴 开源的 LogikM 看起来也不错。

    数据卷

    如果有持久化需求可以放开 yaml 文件中的 volumes相关配置,并创建对应文件夹同时将文件夹权限调整为 777

    因为容器内部使用 uid=1001 的用户在运行程序,容器外部其他用户创建的文件夹对 1001 来说是没有权限的。

    目录结构

    整体目录结构如下所示:

    1. 1
    2. 2
    3. 3
    4. 4
    1. kafka
    2. ├── docker-compose.yaml
    3. ├── kafka
    4. └── zookeeper

    启动

    在 docker-compose.yaml 文件目录下使用以下命令即可一键启动:

    1
    
    docker-compose up
    

    3. 测试

    启动后浏览器直接访问localhost:9000即可进入 Web 监控界面。

  • 相关阅读:
    内置指令与自定义指令的使用
    MySQL笔记(进阶篇)
    基于WOA算法的SVDD参数寻优matlab仿真
    【译】发布 .NET Aspire 预览版 2(二)
    【Vue基础二】--- 计算属性,watch,style,class,条件列表渲染
    408 考研《操作系统》第一章第二节:操作系统的发展与分类和操作系统的运行机制与体系结构
    php对接飞书机器人
    解释一下React中的钩子(hooks),例如useState和useEffect。
    【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.9 右键菜单事件
    安装Keras,tensorflow,并将虚拟环境添加到jupyter notebook
  • 原文地址:https://blog.csdn.net/lililidahaoren/article/details/126058407