如何配置Kafka账号密码

背景

我们需要与第三方系统进行数据同步,需要搭建公网Kafka,Kafka默认是没有用户密码校验的,所以我们需要配置用户名密码校验。

配置

新增JAAS配置文件

在conf目录下新增kafka_server_jaas.conf文件,文件内容如下:

shell 复制代码
KafkaServer {
            org.apache.kafka.common.security.plain.PlainLoginModule required
            serviceName="kafka"
            username="admin"
            password="admin-secret"
            user_admin="admin-secret"
            user_alice="alice-secret";
};

修改kafka-server-start.sh脚本

-Djava.security.auth.login.config=<jaas配置文件的路径>

shell 复制代码
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G -Djava.security.auth.login.config=/home/ubuntu/kafka_2.11-2.1.1/config/kafka_server_jaas.conf"

修改config/server.properties

这里配置了内网使用 PLAINTEXT 协议,外网使用 SASL_PLAINTEXT 协议

shell 复制代码
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:SASL_PLAINTEXT

listeners=INTERNAL://10.0.12.3:9092,EXTERNAL://10.0.12.3:19092
advertised.listeners=INTERNAL://10.0.12.3:9092,EXTERNAL://xx.xx.xx.xxx:19092
inter.broker.listener.name=INTERNAL
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

请将xx.xx.xx.xxx替换为你的公网IP

测试连接

用kafka tool测试连接,下载地址:https://www.kafkatool.com/

  • 配置Zookeeper地址
  • 配置Security
  • 配置Bootstrap
  • 配置用户名密码
    此处的用户名密码需要和jaas的配置一致。
shell 复制代码
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret" ;

至此,配置完成。

相关推荐
帅次23 分钟前
系统分析师-大数据处理系统分析与设计
数据仓库·elasticsearch·kafka·hbase·数据库开发·数据库架构·big data
王莽v25 小时前
序列并行-负载均衡
人工智能·分布式
optimistic_chen5 小时前
【Redis系列】分布式锁
linux·数据库·redis·分布式·缓存
鱼跃鹰飞6 小时前
大厂面试真题-说说kafka消费端幂等性?
面试·职场和发展·kafka
王莽v27 小时前
FlashAttention 学习笔记:从公式到分布式
人工智能·分布式
王莽v28 小时前
LLM 分布式推理:切分、通信与优化
人工智能·分布式
SJLoveIT8 小时前
【深度复盘】Redis 分布式锁:从 SETNX 到 Redisson 看门狗的架构权衡
redis·分布式·架构
【赫兹威客】浩哥8 小时前
【赫兹威客】完全分布式Flink测试教程
大数据·分布式·flink
予枫的编程笔记8 小时前
【Redis实战进阶篇1】Redis 分布式锁:从手写实现到 Redisson 最佳实践
redis·分布式·wpf
瑶山8 小时前
Spring Cloud微服务搭建二、分布式定时任务Quartz+MySQL接入
分布式·mysql·spring cloud·微服务·quartz