如何配置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" ;

至此,配置完成。

相关推荐
keep intensify1 小时前
MIT 6.824 lab3B/C
分布式·后端·golang
java1234_小锋1 小时前
RabbitMQ中有哪几种交换机类型?
分布式·rabbitmq
代码漫谈1 小时前
探索RabbitMQ集群:如何实现消息的高可用性和负载均衡
分布式·消息队列·rabbitmq·负载均衡
weisian15115 小时前
Java并发编程--45-分布式一致性协议入门:Raft、Paxos与ZAB的核心思想
java·分布式·raft·paxos·zab
juniperhan17 小时前
Flink 系列第17篇:Flink Table&SQL 核心概念、原理与实战详解
大数据·数据仓库·分布式·sql·flink
卢傢蕊19 小时前
FastDFS 分布式存储
分布式·fastdfs
菜鸟小码20 小时前
Hadoop大数据时代的底座和基石
大数据·hadoop·分布式
珠海西格电力21 小时前
零碳园区管理系统如何守护能源与数据安全?
大数据·人工智能·分布式·架构·能源
weisian1511 天前
Java并发编程--44-分布式限流:令牌桶与漏桶算法在网关层的落地
java·分布式·令牌桶算法·漏桶算法·固定窗口算法·滑动窗口算法
Devin~Y1 天前
大厂Java面试实战:Spring Boot + Redis + Kafka + Kubernetes + RAG 的三轮追问(附答案解析)
java·spring boot·redis·spring cloud·kafka·kubernetes·resilience4j