docker-compose部署kafka


docker-compose.yml如下:


version: '2'
services:
zookeeper:
container_name: zookeeper
image: wurstmeister/zookeeper
volumes:
- ./zookeeper/data:/data
ports:
- "2181:2181"

kafka:
container_name: kafka
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_MESSAGE_MAX_BYTES: 2000000
KAFKA_CREATE_TOPICS: "test:1:1"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- ./kafka:/kafka
- /var/run/docker.sock:/var/run/docker.sock

kafka-manager:
container_name: kafka-manager
image: sheepkiller/kafka-manager
ports:
- 9020:9000
environment:
ZK_HOSTS: zookeeper:2181


参数说明:



  • KAFKA_ADVERTISED_HOST_NAME:Docker宿主机IP(如果你要配置多个brokers,就不能设置为 localhost 或 127.0.0.1)
  • KAFKA_MESSAGE_MAX_BYTES:kafka(message.max.bytes) 会接收单个消息size的最大限制,默认值为1000000 , ≈1M
  • KAFKA_CREATE_TOPICS:初始创建的topics,可以不设置
  • 环境变量./kafka为防止容器销毁时消息数据丢失。
  • 容器kafka-manager为yahoo出可视化kafka WEB管理平台。


在docker-compose.yml所在目录下执行:


# 启动:
$ docker-compose up -d

# 删除容器:
$ docker-compose down


# 增加更多Broker:
$ docker-compose scale kafka=3

# 合并:
$ docker-compose up --scale kafka=3