您的位置:首页 > 汽车 > 新车 > 建立网站有哪几种方式_郴州红网_优化网站推广网站_中小企业网络营销现状

建立网站有哪几种方式_郴州红网_优化网站推广网站_中小企业网络营销现状

2024/11/16 8:15:31 来源:https://blog.csdn.net/jkzyx123/article/details/142999674  浏览:    关键词:建立网站有哪几种方式_郴州红网_优化网站推广网站_中小企业网络营销现状
建立网站有哪几种方式_郴州红网_优化网站推广网站_中小企业网络营销现状

在 Docker 中安装 Kafka 并配置 SASL(Simple Authentication and Security Layer) 进行身份验证,能够确保 Kafka 集群的安全性。SASL 是一种常见的认证机制,Kafka 支持多种 SASL 协议,常见的有:

  • SASL/PLAIN:使用用户名和密码进行简单认证。
  • SASL/SCRAM:比 PLAIN 更安全,使用加密的存储机制。
  • SASL/GSSAPI (Kerberos):使用 Kerberos 进行安全认证。

在本示例中,我们将使用 SASL/PLAIN 配置 Kafka,并通过 Docker 运行 Kafka。

步骤 1:准备 Docker 环境

确保你已经安装了 Docker,并且拉取了 Kafka 和 Zookeeper 的镜像。

docker pull wurstmeister/zookeeper 
docker pull wurstmeister/kafka

步骤 2:配置 Zookeeper 和 Kafka 使用 Docker-Compose

我们将使用 docker-compose.yml 文件来配置 Kafka 和 Zookeeper。你可以使用如下的 docker-compose.yml 文件。

services:zookeeper:image: wurstmeister/zookeepervolumes:- ./zookeeper/zookeeper_jaas.conf:/opt/zookeeper-3.4.13/zookeeper_jaas.conf- ./zookeeper/zoo.cfg:/opt/zookeeper-3.4.13/conf/zoo.cfgcontainer_name: zookeeperenvironment:ZOOKEEPER_CLIENT_PORT: 2181ZOOKEEPER_TICK_TIME: 2000SERVER_JVMFLAGS: -Djava.security.auth.login.config=/opt/secrets/zookeeper_jaas.confports:- 2181:2181restart: alwayskafka:image: wurstmeister/kafkacontainer_name: kafkadepends_on:- zookeeperports:- 9092:9092volumes:- ./secrets/:/opt/secrets/environment:KAFKA_BROKER_ID: 0KAFKA_ADVERTISED_LISTENERS: SASL_PLAINTEXT://localhost:9092KAFKA_ADVERTISED_PORT: 9092KAFKA_LISTENERS: SASL_PLAINTEXT://0.0.0.0:9092KAFKA_SECURITY_INTER_BROKER_PROTOCOL: SASL_PLAINTEXTKAFKA_PORT: 9092KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAINKAFKA_SASL_ENABLED_MECHANISMS: PLAINKAFKA_AUTHORIZER_CLASS_NAME: kafka.security.auth.SimpleAclAuthorizerKAFKA_SUPER_USERS: User:adminKAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true" #设置为true,ACL机制为黑名单机制,只有黑名单中的用户无法访问,默认为false,ACL机制为白名单机制,只有白名单中的用户可以访问KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0KAFKA_HEAP_OPTS: "-Xmx512M -Xms16M"KAFKA_OPTS: -Djava.security.auth.login.config=/opt/secrets/server_jaas.conf

步骤 3:配置 JAAS 文件

Kafka的 JAAS 配置(kafka_server_jaas.conf

Kafka 的 SASL 需要通过 Java Authentication and Authorization Service (JAAS) 配置认证机制。你需要创建 kafka_server_jaas.conf 文件,并指定认证的用户名和密码。

touch kafka_server_jaas.conf

kafka_server_jaas.conf 中添加以下内容:

KafkaServer {org.apache.kafka.common.security.plain.PlainLoginModule requiredusername="admin"password="123456"  user_admin="123456";
};KafkaClient {org.apache.kafka.common.security.plain.PlainLoginModule requiredusername="admin"password="123456";
};
  • KafkaServer: 定义了 Kafka 服务器的认证模块。
  • usernamepassword: 为 Kafka 自己的身份信息,用于 Broker 之间的认证。
  • user_admin="admin-secret"user_user1="user1-secret":定义了允许连接 Kafka 的用户及其密码(例如 adminuser1)。
  • Client:用于 Kafka 作为 Zookeeper 客户端时的身份验证配置。
Zookeeper 的 JAAS 配置 (zookeeper_jaas.conf)

Zookeeper 也需要配置 SASL 认证。创建 zookeeper_jaas.conf 文件:

Client {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="admin"password="123456";
};Server {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="admin"password="123456"user_admin="123456";
};

步骤 4. 启动 Kafka 和 Zookeeper 服务

使用以下命令启动 Kafka 和 Zookeeper:

docker-compose up -d

此命令将以后台模式启动所有服务。你可以使用 docker ps 命令确认容器是否启动成功。

步骤 5. 测试 Kafka 和 SASL 认证

5.1. 使用 Kafka CLI 工具验证

Kafka 启动后,可以通过 Kafka 自带的命令行工具来测试 SASL 认证是否生效。

首先,创建一个主题:

docker exec -it <kafka-container-id> kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --command-config /opt/secrets/server_jaas.conf

接着,验证生产者和消费者是否正常工作:

生产消息:

docker exec -it <kafka-container-id> kafka-console-producer --broker-list localhost:9093 --topic test-topic --producer.config /etc/kafka/kafka_server_jaas.conf

消费消息:

docker exec -it <kafka-container-id> kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning --consumer.config /opt/secrets/server_jaas.conf

通过 --producer.config--consumer.config 参数指定使用 SASL 认证配置。

步骤 6. 验证日志

检查 Kafka 和 Zookeeper 的日志,确认是否有身份认证相关的错误:

docker logs <kafka-container-id> docker logs <zookeeper-container-id>

确保没有身份验证失败的错误信息。

总结

通过上述步骤,你可以使用 Docker 安装 Kafka 和 Zookeeper 并配置 SASL 认证机制。这个配置将确保 Kafka 和 Zookeeper 的通信通过 SASL/PLAIN 认证进行。通过 Docker Compose 可以轻松启动和管理 Kafka 集群,并保证高效的部署。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com