问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

docker-compose部署 Kafka 3.7 启用账号密码认证

创作时间:
作者:
@小白创作中心

docker-compose部署 Kafka 3.7 启用账号密码认证

引用
CSDN
1.
https://blog.csdn.net/xingzuo_1840/article/details/139339490

本文将详细介绍如何使用docker-compose部署Kafka 3.7,并启用账号密码认证。通过本文,你将学会如何创建Kafka的工作目录、编写docker-compose配置文件,以及如何进行权限测试。

1. 部署

1.1 创建工作目录

  • 创建kafka目录,进入该目录

1.2 yml文件

1)文件内容

创建docker-compose.yml 文件,内容如下:

version: "3"
services:
   kafka:
     image: 'bitnami/kafka:3.7.0'
     user: root
     ports:
- '9092:9092'
     environment:
- TZ=Asia/Shanghai
- KAFKA_CFG_PROCESS_ROLES=broker,controller
- BITNAMI_DEBUG=true
- ALLOW_PLAINTEXT_LISTENER=no
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_NUM_PARTITIONS=1
- KAFKA_CFG_LISTENERS=INTERNAL://:9094,CLIENT://:9095,CONTROLLER://:9093,EXTERNAL://:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=INTERNAL://10.10.181.199:9094,CLIENT://:9095,EXTERNAL://10.10.181.199:9092
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:SASL_PLAINTEXT,CLIENT:SASL_PLAINTEXT,CONTROLLER:PLAINTEXT,EXTERNAL:SASL_PLAINTEXT   
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INTERNAL
- KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN
- KAFKA_CFG_SASL_ENABLED_MECHANISMS=PLAIN
- KAFKA_CLIENT_USERS=liu_bei
- KAFKA_CLIENT_PASSWORDS=liubei@161
- KAFKA_INTER_BROKER_USER=liu_bei
- KAFKA_INTER_BROKER_PASSWORD=liubei@161
- KAFKA_CFG_NODE_ID=1
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@127.0.0.1:9093
- KAFKA_KRAFT_CLUSTER_ID=xishu
- KAFKA_OPTS=-Djava.security.auth.login.config=/bitnami/kafka/data/kafka_server_jaas.conf
     volumes:
- ./data:/bitnami/kafka/data:rw

2)说明:

  • KAFKA_CFG_PROCESS_ROLES:kafka扮演角色:broker 和 controller,即代表使用raft模式
  • BITNAMI_DEBUG=true:控制台打印日志
  • ALLOW_PLAINTEXT_LISTENER=no:Kafka 不允许使用非加密的(即明文的)监听器(listener)来接受客户端连接
  • KAFKA_CFG_CONTROLLER_LISTENER_NAMES:控制器名称 对应下面CONTROLLER://:9093
  • KAFKA_CFG_NUM_PARTITIONS:默认分区数
  • KAFKA_CFG_LISTENERS:监听器的地址和端口
  • KAFKA_CFG_ADVERTISED_LISTENERS:发布监听器的地址和端口
  • KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP:定义监听器所使用的不同协议
  • KAFKA_CFG_INTER_BROKER_LISTENER_NAME:指定了 Kafka broker 之间进行通信时所使用的监听器的名称
  • KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL:指定了 Kafka broker 之间通信时所使用的 SASL 认证机制,为PLAIN
  • KAFKA_CFG_SASL_ENABLED_MECHANISMS:指定了 Kafka broker 支持哪些 SASL 认证机制
  • KAFKA_CLIENT_USERS:客户端账号(必须是已经创建的)
  • KAFKA_CLIENT_PASSWORDS:客户端用户的密码
  • KAFKA_INTER_BROKER_USER:内部broker之间通信账号(必须是已经创建的)
  • KAFKA_INTER_BROKER_PASSWORD:内部broker之间通信密码
  • KAFKA_CFG_NODE_ID:节点ID (如果多个节点,每个节点不相同)
  • KAFKA_CFG_CONTROLLER_QUORUM_VOTERS:定义了哪些 broker 将参与控制器的选举
  • KAFKA_KRAFT_CLUSTER_ID:集群id(所有节点相同)
  • KAFKA_OPTS:指定JAAS配置文件路径

1.3 启动

[root@liubei kafka]# docker-compose up -d
[root@liubei kafka]# docker-compose ps
    Name                   Command               State           Ports
-------------------------------------------------------------------------------
kafka_kafka_1   /opt/bitnami/scripts/kafka ...   Up      0.0.0.0:9092->9092/tcp

2. 测试

2.1 kafkamap搭建(测试工具)

  • 创建kafkamap目录,进入该目录
  • 创建docker-compose.yml文件如下
version: "3"
services:
   kafka_map:
     image: dushixiang/kafka-map:latest
     environment:
- DEFAULT_USERNAME=liubei
- DEFAULT_PASSWORD=liubei@161
     ports:
- '8080:8080'

2.2 权限测试

  • web登录:http://IP:8080
  • 创建连接
  • 链接创建成功
  • 创建topic
  • topic 创建成功

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号