基于docker-compose构建kafka,修改默认分区

Posted Dobyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于docker-compose构建kafka,修改默认分区相关的知识,希望对你有一定的参考价值。

通过docker-compose构建的kafka容器,直接修改server.properties配置文件中的num.partitions=x参数,再重启容器或者重启后台服务,不会生效。

解决方案:

        在docker-compose配置环境变量:KAFKA_NUM_PARTITIONS

kafka:
    image: 'bitnami/kafka:2.2.1'
    ports:
      - '9092:9092'
    environment:
        # 通过此变量修改默认分区
      - KAFKA_NUM_PARTITIONS=3 

然后重新构建,即可生效。

Docker快速安装kafka

Docker快速安装kafka | 沈健的技术博客 盒子
文章目录

同样基于docker-compose安装,Docker快速部署nginx中有讲到,不在重述

1. 编写docker-compose.yml

个人习惯放在/opt/下,如/opt/kafka, /opt/nginx, docker-compose.yml如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'
services:
zookeeper:
image: 大专栏  Docker快速安装kafkalass="string">wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.153.152 # 宿主IP地址,此为我虚拟机地址
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock

2. 启动kafka

docker-compose up -d

Creating kafka_kafka_1 … done
Creating kafka_zookeeper_1 … done

3. 消息生产消费验证

1
2
3
4
5
6
7
8
9
10
11
12
docker exec -it kafka_kafka_1 /bin/bash # 进入kafka终端

# 创建test主题,副本1,分区1
kafka-topics.sh --create --topic test --zookeeper kafka_zookeeper_1:2181 --replication-factor 1 --partitions 1

kafka-topics.sh --list --zookeeper kafka_zookeeper_1:2181 # 查看刚才创建的test分区

# 发布消息,输入几条消息后,按^C退出发布
kafka-console-producer.sh --topic=test --broker-list kafka_kafka_1:9092

# 接收消息
kafka-console-consumer.sh --bootstrap-server kafka_kafka_1:9092 --from-beginning --topic test

如果正常的话,发布的消息能够接收到,开始愉悦的kafka之旅吧~~~

以上是关于基于docker-compose构建kafka,修改默认分区的主要内容,如果未能解决你的问题,请参考以下文章

Docker-Compose构建spark集群

Docker部署Kafka以及Spring Kafka操作

分布式ELK+KAFKA日志采集 docker-compose

使用 docker-compose 设置 Kafka

docker-compose 搭建 Kafka (1)

docker-compose 搭建 kafka 集群