在现代数据管道与微服务的世界中,Apache Kafka 是处理实时事件流与集成分布式系统的首选方案。随着越来越多的工程团队转向可扩展、事件驱动的架构,Kafka 成为可靠数据流转的核心。
与此同时,Docker 已成为开发者管理、共享并部署复杂服务的主流方式,无需担心环境不一致或本地问题。
通过使用 Docker 运行 Kafka,团队可以快速启动接近生产环境的集群,用于测试、概念验证演示,甚至生产工作负载。
本文面向中级后端开发者、DevOps 工程师,以及任何负责数据平台管理、希望以更简单和可复现实践来使用 Kafka 的读者。
如果您刚接触 Kafka 或 Docker,欢迎参考我们的 Introduction to Apache Kafka 课程或 Docker for Beginners: A Practical Guide to Containers。
什么是 Kafka?为什么要用 Docker?
Apache Kafka 是一个为高吞吐、容错与可扩展消息传递而设计的分布式流平台。
它在数据生产者与消费者之间充当持久、高速的管道。无论是连接微服务、编排数据流,还是处理实时分析,Kafka 往往是不二之选。
您可以通过我们的 Kafka Streams 教程 学习如何使用 Kafka Streams 构建实时数据处理应用。该教程涵盖核心概念、Java 与 Python 实现,以及构建可扩展流式应用的分步示例。
运行 Kafka 可能较为复杂。即便是经验丰富的工程师,也会被 broker、topic、partition 以及 Zookeeper 或 KRaft 等必要组件的复杂性所困扰。
Docker 通过将二进制文件、依赖与配置打包为容器,简化了这一过程。
借助 Docker,工程师可以在任意机器上启动 Kafka 集群,与同事共享完全一致的环境,避免常见的“只在我电脑上能跑”的问题。容器化的 Kafka 尤其适用于:
- 本地开发与测试,快速启停至关重要
- CI/CD 流水线中的隔离集成环境
- 在单机上模拟多 broker 集群
- 培训与演示环境
通过我们的 Apache Kafka 入门指南探索 Kafka。学习基础知识、快速上手,并了解这一强大事件流平台的高级特性与真实应用。
在 Docker 中使用 Kafka 的基础
在深入编排之前,先拆解 Kafka 的技术组件,并了解 Docker 如何在笔记本或服务器上重现其分布式特性会更有帮助。
正如您会在我们的 从零学习 Docker 教程中学到的那样,Docker 是通过容器化来简化像 Kafka 这类应用的部署、扩缩与管理的热门工具。
Kafka 架构基础
Kafka 的骨干是其 broker:一个用于存储、接收与提供消息的服务器进程。每个集群可以由多个 broker 组成,以分担数据与负载。
在每个 broker 内部包含 topic(用于组织消息的命名通道)和 partition(将事件分布到多台服务器以实现并行与持久性的子通道)。生产者向 topic 写入数据,消费者订阅并处理这些消息。
协调至关重要。传统上,Kafka 依赖 Zookeeper 处理 broker 元数据、分区主导权与整体集群健康状况。较新的部署可以使用 KRaft 模式,将这种协调内置到 Kafka 自身,从而移除对 Zookeeper 的依赖。ZooKeeper 在 3.5 版本被弃用,计划在 4.0 中移除。
通过我们的 如何使用 Docker 容器化应用 教程,了解如何使用 Docker 与 Kubernetes 容器化机器学习应用。
KRaft 模式:简化 Kafka 架构
自 2.8 版本起,Kafka 引入 KRaft 模式,使其无需依赖 Zookeeper 即可在内部管理元数据,并在 3.3 版本被宣布可用于生产。此举简化了部署,减少了需要管理的组件数量。
使用 Docker Compose 以 KRaft 模式部署 Kafka:
version: '3.8'
services:
kafka:
image: apache/kafka:latest
container_name: kafka
ports:
- "9092:9092"
- "9093:9093"
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LOG_DIRS: /var/lib/kafka/data
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_LOG_RETENTION_HOURS: 168
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
CLUSTER_ID: "Mk3OEYBSD34fcwNTJENDM2Qk"
volumes:
- ./data:/var/lib/kafka/data技术支持
该配置在 KRaft 模式下搭建了一个单节点 Kafka 集群,无需 Zookeeper。
Docker 基础要点
要用 Docker 运行 Kafka,您只需掌握一些基础:Docker Engine(运行时)以及常用于多容器管理的 Docker Compose。
Compose 文件允许您在一个 YAML 中指定多个服务(Kafka、Zookeeper、Kafka UI 等)、它们的网络、环境变量以及存储挂载。Docker 的网络能力让您即便在单机上,也能通过为每个 broker 分配独立的容器、主机名与端口来模拟多 broker 集群。
熟悉 Docker 的最佳方式之一是动手项目。试试这些 10 个 Docker 项目点子 来实践。
使用 Docker Compose 搭建 Kafka
Docker Compose 通常是运行多容器交互式应用的首选方式。与其在 Shell 脚本或手动命令间切换,Compose 让您在一个 YAML 文件中定义所有服务及其关联。
这种方式可减少配置漂移、加速新成员上手,并确保所有人都能在开发中使用同一套栈。
最小化的 Compose 配置
以下是一个基础的 docker-compose.yml,用于本地开发时启动 Kafka 与 Zookeeper:
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ports:
- "2181:2181"
kafka:
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
ports:
- "9092:9092"
volumes:
- kafka_data:/var/lib/kafka/data
volumes:
kafka_data:技术支持
该最小配置映射了相关端口,将 Kafka 连接至 Zookeeper,并挂载 Docker 卷,从而在容器重启时消息不会丢失。请务必使用环境变量配置 broker 身份、监听地址,以及服务之间的连接端点。
充分理解 Kafka 有助于在数据工程面试中脱颖而出。为下一次面试做好准备,请参考我们整理的 20 道面向数据工程师的 Kafka 面试题。
扩展配置
专业环境通常会加入 Kafka UI、Schema Registry 或 REST Proxy 等工具,以便更轻松地管理与检查消息。您可以将它们添加到 Compose 文件的 services 块中。例如:
kafka-ui:
image: provectuslabs/kafka-ui:latest
ports:
- "8080:8080"
environment:
KAFKA_CLUSTERS_0_NAME: "Local"
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: "kafka:9092"技术支持
在重启间持久化 Kafka topic 与日志对于测试恢复场景或长任务至关重要。若使用 Zookeeper,请始终将 Docker 卷挂载到每个 broker 的 /var/lib/kafka/data 与 Zookeeper 的 /var/lib/zookeeper。
选择合适的镜像很关键。以下是快速概览:
|
Kafka Docker 镜像
|
维护方
|
特性
|
最佳使用场景
|
|
Confluent
|
Confluent
|
功能齐全,附加组件多
|
接近生产的环境,高级测试
|
|
Bitnami
|
Bitnami
|
干净、精简
|
本地开发、资源受限环境
|
|
Apache Kafka(KRaft)
|
Apache
|
无需 Zookeeper,部署更简
|
现代化部署,简化架构
|
2025 年如何学习 Apache Kafka 教程将更详细地介绍 Kafka,包括
- Apache Kafka 流行的原因
- Apache Kafka 的主要特性
- Apache Kafka 的多种应用
在 Docker 中与 Kafka 交互
一旦通过 Docker Compose 启动 Kafka,您就可以像在标准部署中一样,立刻创建 topic 并发送数据。
CLI 访问与 Kafka 命令
使用 docker-compose exec 或 docker exec 运行 Kafka 的 CLI 工具。例如,创建一个 topic:
docker-compose exec kafka kafka-topics.sh --create --topic demo --bootstrap-server localhost:9092技术支持
您也可以以相同方式使用 kafka-console-producer.sh 与 kafka-console-consumer.sh。这为集成测试或试验提供了快速反馈循环,同时不会污染本地环境。
应用的编程式访问
应用与脚本可通过主机上对外公布的 bootstrap servers 连接到容器化的 Kafka。对于本地应用,请设置 bootstrap.servers=localhost:9092 或等效项。
常见客户端包括官方的 Python、Java、NodeJS 与 Go 的 Kafka 库。请确保您的应用网络栈能够访问正确的端口与地址。
Docker 网络与 Kafka 连接性
Kafka 的网络配置常常带来挑战。理解内外部监听器以及如何暴露服务至关重要。
内部监听器 vs 外部监听器
Kafka broker 使用监听器控制客户端连接。两种常见设置为:
PLAINTEXT://:9092:用于本地、非加密流量,尤其适用于开发
SSL 或 SASL_SSL 监听器:用于加密或认证连接
在 docker-compose 中,暴露正确端口并确保 KAFKA_ADVERTISED_LISTENERS 与应用实际使用的主机与端口一致。若运行在虚拟机或云端,请将该配置设为公网 IP 与映射端口。
|
维度
|
内部监听器
|
外部监听器
|
|
常见协议
|
PLAINTEXT://:9092
|
SSL://、SASL_SSL://,或映射的 PLAINTEXT://
|
|
安全性
|
未加密、未认证
|
加密和/或认证
|
|
典型用途
|
本地开发、容器间流量
|
远程客户端、云主机、生产访问
|
|
Docker Compose 设置
|
在内部网络中暴露 9092 端口
|
将 9092 映射到主机,并将 KAFKA_ADVERTISED_LISTENERS 设为公网 IP
|
|
配置侧重
|
简洁与速度
|
可靠性、安全性、对外访问
|
|
网络范围
|
localhost 或 Docker 内部网络
|
公网 IP 或外部域名
|
为不同客户端访问配置多个监听器
在 Docker 环境中,常见做法是配置多个监听器以适配不同的客户端访问场景:
environment:
KAFKA_LISTENERS: INTERNAL://0.0.0.0:29092,EXTERNAL://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL技术支持
该配置允许内部 Docker 客户端通过 INTERNAL 监听器连接,而外部客户端通过 EXTERNAL 监听器连接。
连接性故障排查
常见错误包括“broker 不可用”“连接被拒绝”或客户端超时。请检查:
- 端口是否正确暴露与映射
- broker 的 advertised listeners 是否与客户端的目标地址一致
- 使用
docker-compose ps 检查所有容器是否健康
- 容器间的 DNS 解析是否正常(使用服务名,如
kafka:9092)
- 尝试使用 docker network inspect 调试跨容器连接
接近生产环境的 Kafka Docker 实践
除了本地测试,容器化的 Kafka 也有助于预发布与 CI/CD。
容器编排策略
Docker Swarm 与 Kubernetes 等编排器可管理多 broker 的 Kafka 部署、滚动更新与服务发现。每个 broker 都有自己的容器,并挂载持久化存储。
在 Kubernetes 中,StatefulSets 负责有序部署,并为每个 broker 创建稳定的 DNS 名称。
日志与监控
将 Kafka 日志输出到 Docker 日志驱动或外部存储以便分析。许多团队将日志汇入 Elasticsearch、Loki 或 Splunk 进行故障排查。将容器化的 Kafka 与 Prometheus、Grafana 搭配用于集群监控。
在 Docker 中优化 Kafka 的技巧
Kafka 的性能取决于对资源与存储的细致管理。
资源分配
为每个 broker 容器分配足够的 CPU、内存与磁盘,以尽可能贴近生产。调优 Docker 资源限制,并通过 KAFKA_JVM_PERFORMANCE_OPTS 传入 JVM 选项以设置堆与 GC。
持久化存储
务必为 /var/lib/kafka/data 与 /var/lib/zookeeper 使用 Docker 卷或绑定挂载。将数据存放在容器内部会在重启时丢失,无法进行持久性测试。高磁盘吞吐对持续性能至关重要,尤其在 CI/CD 压测中。
最佳实践与常见陷阱
遵循一些最佳实践有利于稳定性、可维护性与团队效率。
配置管理
使用 .env 文件或挂载的配置目录在外部管理机密与配置。切勿在 compose 的 YAML 中硬编码敏感数据。对于复用的方案,考虑使用模板工具或配置管理框架。
常见错误
避免以下常见失误
- 不要将数据存放于容器内部;务必挂载卷
- 检查宿主机的端口冲突
- 避免使用默认管理员密码;即使是本地开发也要保护对外端口
- 保持 Docker 镜像最新;及时修补 CVE 与弃用依赖
强化 Kafka 安全性
要保护您的 Kafka 部署:
- 启用 TLS 加密:为所有连接配置 SSL/TLS,保护传输中的数据。
- 实施认证:使用 SASL 机制(如 SCRAM、GSSAPI)对客户端进行认证。
- 设置授权:定义访问控制列表(ACL)来控制客户端权限。
- 定期轮换凭据:定期更换密码与密钥,以降低风险。
- 监控与审计:启用审计日志,跟踪集群中的访问与变更
结语
Docker 让您能够极其轻松地启动、调优并试验 Apache Kafka 集群,无论是用于集成、学习,还是接近生产的测试。容器将您与宿主操作系统问题和依赖不匹配隔离开来,确保开发与测试环境如您所愿。随着您从简单的本地集群迈向编排化的 Kafka 平台,投入于健壮的 Docker 架构与最佳实践将为团队节省时间并减少挫败感。
想要进一步了解 Kafka 与 Docker,请查看我们的以下综合课程:
在现代数据管道与微服务的世界中,Apache Kafka 是处理实时事件流与集成分布式系统的首选方案。随着越来越多的工程团队转向可扩展、事件驱动的架构,Kafka 成为可靠数据流转的核心。
与此同时,Docker 已成为开发者管理、共享并部署复杂服务的主流方式,无需担心环境不一致或本地问题。
通过使用 Docker 运行 Kafka,团队可以快速启动接近生产环境的集群,用于测试、概念验证演示,甚至生产工作负载。
本文面向中级后端开发者、DevOps 工程师,以及任何负责数据平台管理、希望以更简单和可复现实践来使用 Kafka 的读者。
如果您刚接触 Kafka 或 Docker,欢迎参考我们的 Introduction to Apache Kafka 课程或 Docker for Beginners: A Practical Guide to Containers。
什么是 Kafka?为什么要用 Docker?
Apache Kafka 是一个为高吞吐、容错与可扩展消息传递而设计的分布式流平台。
它在数据生产者与消费者之间充当持久、高速的管道。无论是连接微服务、编排数据流,还是处理实时分析,Kafka 往往是不二之选。
您可以通过我们的 Kafka Streams 教程 学习如何使用 Kafka Streams 构建实时数据处理应用。该教程涵盖核心概念、Java 与 Python 实现,以及构建可扩展流式应用的分步示例。
运行 Kafka 可能较为复杂。即便是经验丰富的工程师,也会被 broker、topic、partition 以及 Zookeeper 或 KRaft 等必要组件的复杂性所困扰。
Docker 通过将二进制文件、依赖与配置打包为容器,简化了这一过程。
借助 Docker,工程师可以在任意机器上启动 Kafka 集群,与同事共享完全一致的环境,避免常见的“只在我电脑上能跑”的问题。容器化的 Kafka 尤其适用于:
通过我们的 Apache Kafka 入门指南探索 Kafka。学习基础知识、快速上手,并了解这一强大事件流平台的高级特性与真实应用。
在 Docker 中使用 Kafka 的基础
在深入编排之前,先拆解 Kafka 的技术组件,并了解 Docker 如何在笔记本或服务器上重现其分布式特性会更有帮助。
正如您会在我们的 从零学习 Docker 教程中学到的那样,Docker 是通过容器化来简化像 Kafka 这类应用的部署、扩缩与管理的热门工具。
Kafka 架构基础
Kafka 的骨干是其 broker:一个用于存储、接收与提供消息的服务器进程。每个集群可以由多个 broker 组成,以分担数据与负载。
在每个 broker 内部包含 topic(用于组织消息的命名通道)和 partition(将事件分布到多台服务器以实现并行与持久性的子通道)。生产者向 topic 写入数据,消费者订阅并处理这些消息。
协调至关重要。传统上,Kafka 依赖 Zookeeper 处理 broker 元数据、分区主导权与整体集群健康状况。较新的部署可以使用 KRaft 模式,将这种协调内置到 Kafka 自身,从而移除对 Zookeeper 的依赖。ZooKeeper 在 3.5 版本被弃用,计划在 4.0 中移除。
通过我们的 如何使用 Docker 容器化应用 教程,了解如何使用 Docker 与 Kubernetes 容器化机器学习应用。
KRaft 模式:简化 Kafka 架构
自 2.8 版本起,Kafka 引入 KRaft 模式,使其无需依赖 Zookeeper 即可在内部管理元数据,并在 3.3 版本被宣布可用于生产。此举简化了部署,减少了需要管理的组件数量。
使用 Docker Compose 以 KRaft 模式部署 Kafka:
该配置在 KRaft 模式下搭建了一个单节点 Kafka 集群,无需 Zookeeper。
Docker 基础要点
要用 Docker 运行 Kafka,您只需掌握一些基础:Docker Engine(运行时)以及常用于多容器管理的 Docker Compose。
Compose 文件允许您在一个 YAML 中指定多个服务(Kafka、Zookeeper、Kafka UI 等)、它们的网络、环境变量以及存储挂载。Docker 的网络能力让您即便在单机上,也能通过为每个 broker 分配独立的容器、主机名与端口来模拟多 broker 集群。
熟悉 Docker 的最佳方式之一是动手项目。试试这些 10 个 Docker 项目点子 来实践。
使用 Docker Compose 搭建 Kafka
Docker Compose 通常是运行多容器交互式应用的首选方式。与其在 Shell 脚本或手动命令间切换,Compose 让您在一个 YAML 文件中定义所有服务及其关联。
这种方式可减少配置漂移、加速新成员上手,并确保所有人都能在开发中使用同一套栈。
最小化的 Compose 配置
以下是一个基础的
docker-compose.yml,用于本地开发时启动 Kafka 与 Zookeeper:该最小配置映射了相关端口,将 Kafka 连接至 Zookeeper,并挂载 Docker 卷,从而在容器重启时消息不会丢失。请务必使用环境变量配置 broker 身份、监听地址,以及服务之间的连接端点。
充分理解 Kafka 有助于在数据工程面试中脱颖而出。为下一次面试做好准备,请参考我们整理的 20 道面向数据工程师的 Kafka 面试题。
扩展配置
专业环境通常会加入 Kafka UI、Schema Registry 或 REST Proxy 等工具,以便更轻松地管理与检查消息。您可以将它们添加到 Compose 文件的 services 块中。例如:
在重启间持久化 Kafka topic 与日志对于测试恢复场景或长任务至关重要。若使用 Zookeeper,请始终将 Docker 卷挂载到每个 broker 的
/var/lib/kafka/data与 Zookeeper 的/var/lib/zookeeper。选择合适的镜像很关键。以下是快速概览:
Kafka Docker 镜像
维护方
特性
最佳使用场景
Confluent
Confluent
功能齐全,附加组件多
接近生产的环境,高级测试
Bitnami
Bitnami
干净、精简
本地开发、资源受限环境
Apache Kafka(KRaft)
Apache
无需 Zookeeper,部署更简
现代化部署,简化架构
2025 年如何学习 Apache Kafka 教程将更详细地介绍 Kafka,包括
在 Docker 中与 Kafka 交互
一旦通过 Docker Compose 启动 Kafka,您就可以像在标准部署中一样,立刻创建 topic 并发送数据。
CLI 访问与 Kafka 命令
使用
docker-compose exec或docker exec运行 Kafka 的 CLI 工具。例如,创建一个 topic:您也可以以相同方式使用
kafka-console-producer.sh与kafka-console-consumer.sh。这为集成测试或试验提供了快速反馈循环,同时不会污染本地环境。应用的编程式访问
应用与脚本可通过主机上对外公布的 bootstrap servers 连接到容器化的 Kafka。对于本地应用,请设置
bootstrap.servers=localhost:9092或等效项。常见客户端包括官方的 Python、Java、NodeJS 与 Go 的 Kafka 库。请确保您的应用网络栈能够访问正确的端口与地址。
Docker 网络与 Kafka 连接性
Kafka 的网络配置常常带来挑战。理解内外部监听器以及如何暴露服务至关重要。
内部监听器 vs 外部监听器
Kafka broker 使用监听器控制客户端连接。两种常见设置为:
PLAINTEXT://:9092:用于本地、非加密流量,尤其适用于开发SSL或SASL_SSL监听器:用于加密或认证连接在
docker-compose中,暴露正确端口并确保KAFKA_ADVERTISED_LISTENERS 与应用实际使用的主机与端口一致。若运行在虚拟机或云端,请将该配置设为公网 IP 与映射端口。维度
内部监听器
外部监听器
常见协议
PLAINTEXT://:9092
SSL://、SASL_SSL://,或映射的 PLAINTEXT://
安全性
未加密、未认证
加密和/或认证
典型用途
本地开发、容器间流量
远程客户端、云主机、生产访问
Docker Compose 设置
在内部网络中暴露 9092 端口
将 9092 映射到主机,并将 KAFKA_ADVERTISED_LISTENERS 设为公网 IP
配置侧重
简洁与速度
可靠性、安全性、对外访问
网络范围
localhost 或 Docker 内部网络
公网 IP 或外部域名
为不同客户端访问配置多个监听器
在 Docker 环境中,常见做法是配置多个监听器以适配不同的客户端访问场景:
该配置允许内部 Docker 客户端通过
INTERNAL监听器连接,而外部客户端通过EXTERNAL监听器连接。连接性故障排查
常见错误包括“broker 不可用”“连接被拒绝”或客户端超时。请检查:
docker-compose ps检查所有容器是否健康kafka:9092)接近生产环境的 Kafka Docker 实践
除了本地测试,容器化的 Kafka 也有助于预发布与 CI/CD。
容器编排策略
Docker Swarm 与 Kubernetes 等编排器可管理多 broker 的 Kafka 部署、滚动更新与服务发现。每个 broker 都有自己的容器,并挂载持久化存储。
在 Kubernetes 中,
StatefulSets负责有序部署,并为每个 broker 创建稳定的 DNS 名称。日志与监控
将 Kafka 日志输出到 Docker 日志驱动或外部存储以便分析。许多团队将日志汇入 Elasticsearch、Loki 或 Splunk 进行故障排查。将容器化的 Kafka 与 Prometheus、Grafana 搭配用于集群监控。
在 Docker 中优化 Kafka 的技巧
Kafka 的性能取决于对资源与存储的细致管理。
资源分配
为每个 broker 容器分配足够的 CPU、内存与磁盘,以尽可能贴近生产。调优 Docker 资源限制,并通过
KAFKA_JVM_PERFORMANCE_OPTS传入 JVM 选项以设置堆与 GC。持久化存储
务必为
/var/lib/kafka/data与/var/lib/zookeeper使用 Docker 卷或绑定挂载。将数据存放在容器内部会在重启时丢失,无法进行持久性测试。高磁盘吞吐对持续性能至关重要,尤其在 CI/CD 压测中。最佳实践与常见陷阱
遵循一些最佳实践有利于稳定性、可维护性与团队效率。
配置管理
使用
.env文件或挂载的配置目录在外部管理机密与配置。切勿在compose的 YAML 中硬编码敏感数据。对于复用的方案,考虑使用模板工具或配置管理框架。常见错误
避免以下常见失误
强化 Kafka 安全性
要保护您的 Kafka 部署:
结语
Docker 让您能够极其轻松地启动、调优并试验 Apache Kafka 集群,无论是用于集成、学习,还是接近生产的测试。容器将您与宿主操作系统问题和依赖不匹配隔离开来,确保开发与测试环境如您所愿。随着您从简单的本地集群迈向编排化的 Kafka 平台,投入于健壮的 Docker 架构与最佳实践将为团队节省时间并减少挫败感。
想要进一步了解 Kafka 与 Docker,请查看我们的以下综合课程: