本篇文章会介绍使用使用docker-compose
安装带SASL认证的Kafka消息队列。为啥会有这篇文章主要是网上一些文章太折磨人了,都是互抄的而且都是错的。我配合SpringBoot
调试搞了我一天。为啥要搞SASL认证也主要是为了安全考虑。如果不加认证,Kafka
应用就是裸露在外面的,会有安全风险。阅读此文前,需要对docker-compose
有一个基础认知,本文并不属于小白文。
本篇首发于牧码人博客转载请加上此标示。
准备工作
-
docker-compose.yml
# 版本根据你的docker版本来的,目前主流应该都是3.几的版本 version: '3.8' services: zookeeper: image: wurstmeister/zookeeper volumes: - /data/zookeeper/data:/data - /home/docker-compose/kafka/config:/opt/zookeeper-3.4.13/conf/ - /home/docker-compose/kafka/config:/opt/zookeeper-3.4.13/secrets/ container_name: zookeeper environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 SERVER_JVMFLAGS: -Djava.security.auth.login.config=/opt/zookeeper-3.4.13/secrets/server_jaas.conf ports: - 12181:2181 restart: always kafka_node1: image: wurstmeister/kafka container_name: kafka_node1 depends_on: - zookeeper ports: - 9092:9092 volumes: - /home/docker-compose/kafka/data:/kafka - /home/docker-compose/kafka/config:/opt/kafka/secrets/ environment: KAFKA_BROKER_ID: 0 KAFKA_ADVERTISED_LISTENERS: SASL_PLAINTEXT://127.0.0.1:9092 KAFKA_ADVERTISED_PORT: 9092 KAFKA_LISTENERS: SASL_PLAINTEXT://0.0.0.0:9092 KAFKA_SECURITY_INTER_BROKER_PROTOCOL: SASL_PLAINTEXT KAFKA_PORT: 9092 KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN KAFKA_SASL_ENABLED_MECHANISMS: PLAIN KAFKA_AUTHORIZER_CLASS_NAME: kafka.security.auth.SimpleAclAuthorizer KAFKA_SUPER_USERS: User:admin KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: &#