本文主要是搭建kafka集群,并通过SAS进行认证
配置文件
- docker-compose.yml
cat <<EOF > ./docker-compose.yml
version: "3"
services:
kafka:
image: bitnami/kafka:3.1.2
container_name: kafka
user: root
restart: always
ports:
- 9092:9092
- 9093:9093
environment:
KAFKA_CFG_BROKER_ID: 1
KAFKA_HEAP_OPTS: -Xmx4096m -Xms4096m
ALLOW_PLAINTEXT_LISTENER: yes
# zookeeper 配置
KAFKA_CFG_ZOOKEEPER_CONNECT: 10.3.4.156:2181,10.3.4.157:2181
KAFKA_ZOOKEEPER_PROTOCOL: SASL
KAFKA_ZOOKEEPER_USER: kafka
KAFKA_ZOOKEEPER_PASSWORD: kafka123
# 启用的SASL 机制
KAFKA_CFG_SASL_ENABLED_MECHANISMS: PLAIN
# broker之间的SASL 机制,必须在启用的机制内
KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
# SASL broker 用户
KAFKA_INTER_BROKER_USER: admin
KAFKA_INTER_BROKER_PASSWORD: admin123
# SASL client 用户
KAFKA_CLIENT_USERS: kc
KAFKA_CLIENT_PASSWORDS: kc123
# 协议映射,这里要想使用SASL,必须叫CLIENT和INTERNAL,不能改名
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CLIENT:SASL_PLAINTEXT,INTERNAL:SASL_PLAINTEXT
KAFKA_CFG_LISTENERS: CLIENT://:9092,INTERNAL://:9093
KAFKA_CFG_ADVERTISED_LISTENERS: CLIENT://10.3.4.156:9092,INTERNAL://10.3.4.156:9093
# 指定一个listener.security.protocol.map配置项中配置的Key,作为Internal Listener。这个Listener专门用于Kafka集群中Broker之间的通信
# 如果为设置此值,则listener名称由 security.inter.broker.protocol定义(security.inter.broker.protocol默认值是PLAINTEXT)。
# 不要同时设置 inter.broker.listener.name 和 security.inter.broker.protocol
KAFKA_CFG_INTER_BROKER_LISTENER_NAME: INTERNAL
# partions数量
KAFKA_NUM_PARTITIONS: 2
# 数据保留时长
KAFKA_CFG_LOG_RETENTION_HOURS: 720
volumes:
- ./data:/bitnami/kafka
EOF
- 这是
node1
的配置node2
需要修改两处:KAFKA_CFG_BROKER_ID: 2
和KAFKA_CFG_ADVERTISED_LISTENERS: CLIENT://10.3.4.157:9092,INTERNAL://10.3.4.157:9093
node3
需要修改两处:KAFKA_CFG_BROKER_ID: 3
和KAFKA_CFG_ADVERTISED_LISTENERS: CLIENT://10.3.4.158:9092,INTERNAL://10.3.4.158:9093
- 注意:
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP
配置的名字一定不能改:CLIENT
和INTERNAL
。 否则会生不成jaas.conf文件。具体可以参考:https://github.com/bitnami/containers/blob/main/bitnami/kafka/3.4/debian-11/rootfs/opt/bitnami/scripts/libkafka.sh#L848- 此容器会在启动的时候自动生成jaas文件,路径为:
/opt/bitnami/kafka/config/kafka_server_jaas.conf
- 其他环境变量参数,可参考:https://github.com/bitnami/containers/tree/main/bitnami/kafka
启动
docker-compose up -d
网友评论