docker-compose方式启动Kafka Sasl加密认证(无zk)

server/2025/2/28 15:05:15/

首先参考文档,思考过程可以进行参考https://juejin.cn/post/7294556533932884020#heading-3

用的镜像是Bitnami,对SASL配置进行了简化,需要按照特定格式去配置jass验证
完整配置如下
镜像版本参考:https://hub.docker.com/r/bitnami/kafka/tags

KAFKA_KRAFT_CLUSTER_ID这里需要固定一个uuid

# 使用Linux工具生成Kafka格式的集群ID
UUID=$(uuidgen | tr -d '-')
echo $UUID | xxd -r -p | base64

启动以后宿主机kafka的目录结构如下

tree kafka/
kafka/
└── kafka├── config└── data

我最终选择一个固定版本,防止某天重启后发生异常错误

version: '3'
services:kafka:image: bitnami/kafka:3.5.1container_name: kafkaports:- "9092:9092"volumes:- /data/kafka:/bitnamienvironment:# KRaft 模式配置- KAFKA_CFG_NODE_ID=1- KAFKA_CFG_PROCESS_ROLES=broker,controller- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka:9093# 监听配置- KAFKA_CFG_LISTENERS=SASL_PLAINTEXT://:9092,CONTROLLER://:9093- KAFKA_CFG_ADVERTISED_LISTENERS=SASL_PLAINTEXT://localhost:9092- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER# 集群ID- KAFKA_KRAFT_CLUSTER_ID=4Zndq6u1TWqoaPt1AwHAKg==# 客户端用户配置- KAFKA_CLIENT_USERS=admin,ttx- KAFKA_CLIENT_PASSWORDS=TC4xaEvCSGaMuCZT,iri17ttx# controller 用户配置- KAFKA_CFG_SASL_MECHANISM_CONTROLLER_PROTOCOL=PLAIN- KAFKA_CONTROLLER_USER=admin- KAFKA_CONTROLLER_PASSWORD=TC4xaEvCSGaMuCZT# broker间通信用户配置- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=SASL_PLAINTEXT- KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN- KAFKA_INTER_BROKER_USER=admin- KAFKA_INTER_BROKER_PASSWORD=TC4xaEvCSGaMuCZT# 其他配置- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true- ALLOW_PLAINTEXT_LISTENER=yesrestart: unless-stopped
mkdir: cannot create directory '/bitnami/kafka/config': Permission denied`

对容器的kafka用户进行授权

chown 1001:1001 /data/kafka/docker-compose down && docker-compose up -d

测试用户名密码连接

docker exec -it kafka shcat > /tmp/client.properties << EOF
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="ttx" password="iri17ttx";
EOFkafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --command-config /tmp/client.properties --partitions 1 --replication-factor 1
kafka-topics.sh --list --bootstrap-server localhost:9092 --command-config /tmp/client.properties

http://www.ppmy.cn/server/171315.html

相关文章

第12章_管理令牌和会话

管理令牌和会话 除了充当集中式身份验证和授权服务外&#xff0c;Keycloak 的核心还是一个会话和令牌管理系统。 作为身份验证过程的一部分&#xff0c;Keycloak 可以创建服务器端会话并将它们与令牌相关联。通过依赖这些会话&#xff0c;Keycloak 能够保持会话发起的身份验证…

贪心算法:JAVA从理论到实践的探索

在计算机科学领域,贪心算法是一种简单而高效的算法设计策略,广泛应用于优化问题的求解。它通过在每一步选择中都采取当前状态下最优的选择,以期望最终得到全局最优解。本文将深入探讨贪心算法的原理、应用场景,并通过具体代码示例,帮助读者更好地理解和掌握这一算法。 一…

前端系列之:设计模式

什么是设计模式&#xff1f; 设计模式&#xff0c;其实就是一种可以在多处地方重复使用的代码设计方案&#xff0c; 只是不同的设计模式所能应用的场景有所不同。通过这种设计模式可以帮助我们提高代码的可读性、可维护性与可扩展性。 前端的设计模式又分为三个大类型&#x…

CSS 日常开发常用属性总结

文章目录 CSS 日常开发常用属性总结一、 常用 CSS 属性1、布局相关&#xff08;1&#xff09;display&#xff1a;&#xff08;2&#xff09;position&#xff1a;&#xff08;3&#xff09;float&#xff1a;&#xff08;4&#xff09;clear&#xff1a; 2、尺寸与溢出&#x…

MTK多帧拍照流程分析

和你一起终身学习&#xff0c;这里是程序员 Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、MFNR 简介二、MFNR 开关与决策三、MFNR 相关的adb 命令四、MFNR log 分析五 参考文献 一、MFNR 简介 MFNR : Multiple Frame Noise ReductionMFLL…

零基础转行机器视觉,应该学halcon,opencv,海康visionmaster,康耐视visionpro哪一个好

对于零基础转行机器视觉的新手,选择合适的软件需综合考虑学习门槛、功能适用性、成本及职业方向。以下是针对 Halcon、OpenCV、海康VisionMaster、康耐视VisionPro 的分析与建议: OpenCV(开源) 优势: 零成本:开源免费,适合预算有限的初学者。 学习资源丰富:社区庞大,教…

【Python爬虫(98)】从数据抓取到产业变革:爬虫技术的跨界融合与生态进化

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发…

CentOS环境安装Docker

CentOS环境安装Docker 1.1 在线安装Docker 参考官方文档安装&#xff1a;https://docs.docker.com/engine/install/centos/ 1、更新yum yum update2、安装工具包 sudo yum install -y yum-utils3、 设置镜像源 sudo yum-config-manager --add-repo https://download.docke…