来自:指月 https://www.lixueduan.com
原文:https://www.lixueduan.com/post/kafka/01-install/
本文记录了如何通过 docker-compose 快速启动 kafka,部署一套开发环境。
1. 概述
Kafka 是由 Apache 软件基金会旗下的一个开源 消息引擎系统 。
使用 docker-compose 来部署开发环境也比较方便,只需要提准备一个 yaml 文件即可。
Kafka 系列相关代码见 Github
2. docker-compose.yaml
完整的 docker-compose.yaml 内容如下:
当前 Kafka 还依赖 Zookeeper,所以需要先启动一个 Zookeeper 。
version: "3"
services:
zookeeper:
image: 'bitnami/zookeeper:latest'
ports:
- '2181:2181'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
kafka:
image: 'bitnami/kafka:latest'
ports:
- '9092:9092'
- '9999:9999'
environment:
- KAFKA_BROKER_ID=1
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://123.57.236.125:9092
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=false
- KAFKA_CFG_LOG_RETENTION_HOURS=6
- JMX_PORT=9999
depends_on:
- zookeeper
kafka_manager:
image: 'hlebalbau/kafka-manager:latest'
ports:
- "9000:9000"
environment:
ZK_HOSTS: "zookeeper:2181"
APPLICATION_SECRET: letmein
depends_on:
- zookeeper
- 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 来说是没有权限的。
目录结构
整体目录结构如下所示:
kafka
├── docker-compose.yaml
├── kafka
└── zookeeper
启动
在 docker-compose.yaml 文件目录下使用以下命令即可一键启动:
docker-compose up
3. 测试
启动后浏览器直接访问localhost:9000 即可进入 Web 监控界面。
Kafka 系列相关代码见 Github
|