kafka

kafka的3.0以下的版本,都是强依赖zookeeper, 在低版本kafka中, 我们采用了把zookeeper打入镜像中运行

.
├── config-9092
│   ├── run.sh
└── setup.sh

启动

低版本
低版本配置文件
高版本
#!/bin/bash

port=9092
container_name="kafka-${port}"

docker stop ${container_name}
docker rm ${container_name}
docker run -d \
--hostname $(hostname) \
--add-host $(hostname):10.0.18.2 \
--name ${container_name} \
--restart=always \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-v $(pwd)/config-${port}/run.sh:/run.sh \
-v $(pwd)/data-standalone:/data \
--net host \
-e NODE_ID="1001" \
-e LISTENERS="PRIVATE://:9092,CONTROLLER://:9093,PUBLIC://:9094" \
-e ADVERTISED_LISTENERS="PRIVATE://10.0.18.2:9092" \
registry.cn-hangzhou.aliyuncs.com/buyfakett/kafka-standalone:2.13-2.8.0

# 配置通过 run.sh 重写
TIP

如果要限制内存,可以在docker中加一行-e KAFKA_HEAP_OPTS="-Xmx256m -Xms256m" \

集群

三个节点分开部署在三台服务器上,启动脚本中修改NODE_IDKAFKA_CONTROLLER_QUORUM_VOTERS

KAFKA_CONTROLLER_QUORUM_VOTERS=1@192.168.1.1,2@192.168.1.2,3@192.168.1.3

TIP

在三个节点的时候,删除一个节点可以正常使用(显示不健康),删除两个节点的时候不可用

在增加节点的时候只需要在新节点的配置文件中增加自身和别的节点,即可增加节点

可视化

redpandadata-console
kafka-map
#!/bin/bash

##################
# 用于kafka查看
# 部分功能收费如登录功能
# https://docs.redpanda.com/current/get-started/
####################################################

port=9096

docker rm -f redpandadata-console-${port}
docker run --network=host -d \
--name redpandadata-console-${port} \
-e KAFKA_BROKERS=10.0.18.2:9092 \
-e SERVER_LISTENPORT=${port} \
docker.redpanda.com/redpandadata/console:v2.3.3