。此外,还提供了数据生成器、Web界面(可访问各种服务日志和可选的TLS密钥库与信任库),以及大量可自定义的设置选项。
我们建议将fast-data-dev与Lenses CE(社区版)结合使用,通过我们提供的docker-compose实现,可在此处获取。Lenses为Apache Kafka和Kafka Connect提供业界领先的开发体验,在众多功能中,您可能会特别喜欢SQL Studio(允许在Kafka主题上运行SQL查询)和SQL处理器(用于创建流SQL查询)。
我们的docker-compose将为您设置fast-data-dev和Lenses。
使用一条命令启动完整的Kafka环境:
bashdocker run --rm \ -p 9092:9092 \ -p 8081:8081 \ -p 8083:8083 \ -p 3030:3030 \ lensesio/fast-data-dev
通过以下地址访问Web界面:http://localhost:3030
Kafka Broker可通过localhost:9092访问,Schema Registry通过http://localhost:8081访问,Kafka Connect通过http://localhost:8083访问。
bashdocker run --rm \ -e ADV_HOST=<您的IP地址或DNS名称> \ -p 9092:9092 \ -p 8081:8081 \ -p 8083:8083 \ -p 3030:3030 \ lensesio/fast-data-dev
此设置可能需要允许从容器自身连接到fast-data-dev。例如,如果在云VM中运行,可能需要设置防火墙不仅接受来自您计算机的连接,还接受来自VM本身的连接。
此设置允许从主机和其他docker-compose服务访问。从主机访问Broker的地址是localhost:9092,而对于docker-compose服务则是kafka:***。
yamlkafka: image: lensesio/fast-data-dev:3.9.0 hostname: kafka environment: ADV_HOST: kafka RUNNING_SAMPLEDATA: 1 RUNTESTS: 0 # 如果要从主机本地开发访问Kafka,需要以下三个变量。它们适用于KRaft模式的fast-data-dev(3.9.x或更高版本)。Broker将可通过localhost:9092访问。 KAFKA_LISTENERS: PLAINTEXT://:9092,DOCKERCOMPOSE://:***,CONTROLLER://:*** KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,DOCKERCOMPOSE://demo-kafka:*** KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: > DOCKERCOMPOSE:PLAINTEXT,CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT, SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL # 减轻系统负担 DISABLE: debezium-mongodb,debezium-mysql,debezium-postgres,debezium-sqlserver,debezium-jdbc # 这些是Kafka和Schema Registry的端口。如果不需要从主机访问Kafka,可以禁用它们。 ports: - 9092:9092 - 8081:8081 - 8083:8083 - 3030:3030 # 可选,允许恢复工作(持久化) # volumes: # - kafka-data-volume:/data
bash# 启用SSL并自动生成证书 docker run --rm -p 9092:9092 -p 8081:8081 -p 3030:3030 -p 8083:8083 \ -e ENABLE_SSL=1 \ -e SSL_EXTRA_HOSTS=myhost.example.com,192.168.1.100 \ lensesio/fast-data-dev # 通过http://localhost:3030/certs/访问证书 # 密钥库密码:fastdata
bashdocker run --rm -p 9092:9092 -p 8081:8081 -p 3030:3030 \ -e SAMPLEDATA=0 \ -e RUNTESTS=0 \ -e CONNECT_PORT=0 \ lensesio/fast-data-dev
bash# 仅启用特定连接器 docker run --rm --net=host \ -e CONNECTORS=file \ -e CONNECT_HEAP=2G \ -v /path/to/custom/connector.jar:/connectors/connector.jar \ lensesio/fast-data-dev
Fast Data Dev最初于2016年推出,当时Kafka正逐渐获得关注但尚未成为主流。我们希望让每个人都能在几分钟内开始使用流处理。无论是刚开始使用Kafka的新手还是经验丰富的工程师,都对我们的努力给予了肯定,我们也一直在持续升级和添加新功能。
我们使用从源代码构建的原始Apache Kafka,以及同样从源代码构建的Confluent Schema Registry。
查看当前组件版本的最可靠方法是检查/build.info:
bashdocker run --rm lensesio/fast-data-dev:latest cat /build.info
默认启用的服务:
PLAINTEXT://localhost:9092localhost:9581访问-e ENABLE_TLS=1-e ADV_HOST=[HOST]。如果启用了TLS,ADV_HOST将添加到自签名证书中。您还可以使用-e EXTRA_HOSTS=[HOST1],[HOST2],...添加额外主机/var/run/broker/server.propertiessupervisorctl restart broker重启http://localhost:8081/var/run/schema-registrysupervisorctl restart schema-registry重启http://localhost:8083localhost:9584访问docker run --rm lensesio/fast-data-dev:latest \ find /opt/lensesio/connectors -name "kafka-connect-*" -type d -exec basename '{}' \;
-e DISABLE=aws-s3,debezium-jdbc禁用连接器以提高RAM使用率或避免与用户添加的插件冲突-e CONNECTORS=aws-s3,file显式启用连接器/connectors添加您自己的连接器-e CONNECT_PORT=0/var/run/connect/connect-avro-distributed.propertiessupervisorctl restart connect-distributed重启-e WEB_PORT=0完全禁用-e USER=[USER] -e PASSWORD=[PASSWORD]进行密码保护-e RUNNING_SAMPLEDATA=1使生成器持续运行(循环数据集)-e SAMPLEDATA=0禁用生成器-e FORWARDLOGS=0禁用此功能-e RUNTESTS=0禁用测试默认禁用的服务:
-e WEB_TERMINAL_PORT=[PORT]启用-e WEB_TERMINAL_CREDS=[USER]:[PASS]更改凭据-e SUPERVISORWEB=1启用bash-e CONNECT_HEAP_OPTS="-Xmx640M -Xms128M" -e BROKER_HEAP_OPTS="-Xmx320M -Xms320M" -e CONNECT_HEAP_OPTS="-Xmx256M -Xms128M"
bash-e USER=admin # Web UI的基本认证用户名(默认:kafka) -e PASSWORD=secret # Web UI的基本认证密码 -e ENABLE_SSL=1 # 为Broker启用SSL/TLS -e SSL_EXTRA_HOSTS=host1,host2 # 额外的SSL证书主机 -e WEB_TERMINAL_CREDS=admin:admin
bash-e SAMPLEDATA=0 # 禁用示例数据生成 -e RUNNING_SAMPLEDATA=1 # 启用持续的示例数据流 -e RUNTESTS=0 # 禁用集成测试 -e FORWARDLOGS=0 # 禁用日志转发到Kafka主题
bash-e CONNECTORS=jdbc,elastic,hbase # 仅启用特定连接器 -e DISABLE=hbase,mongodb # 禁用特定连接器
bash-e DEBUG=1 # 启用调试日志 -e RUN_AS_ROOT=1 # 以root用户运行服务 -e BROWSECONFIGS=1 # 在Web UI中公开服务配置 -e SUPERVISORWEB=1 # 启用supervisor Web界面(端口9001) -e WEB_TERMINAL_PORT=9002 # 启用Web终端
通过将属性转换为环境变量来配置任何Kafka组件:
示例:
bash# Broker: log.retention.bytes -> KAFKA_LOG_RETENTION_BYTES -e KAFKA_LOG_RETENTION_BYTES=*** # Schema Registry: kafkastore.topic -> SCHEMA_REGISTRY_KAFKASTORE_TOPIC -e SCHEMA_REGISTRY_KAFKASTORE_TOPIC=_schemas # Connect: plugin.path -> CONNECT_PLUGIN_PATH -e CONNECT_PLUGIN_PATH=/custom/connectors
在启动过程中执行自定义脚本:
bash# 内联脚本 -e PRE_SETUP="echo '前置设置脚本'" # 脚本文件 -e PRE_SETUP_FILE="/path/to/script.sh" -v /local/script.sh:/path/to/script.sh # 远程脚本 -e PRE_SETUP_URL="[***]"
访问Kafka命令行工具:
bash# 直接运行命令 docker run --rm -it --net=host lensesio/fast-data-dev \ kafka-topics --bootstrap-server localhost:9092 --list # 进入容器进行交互式使用 docker run --rm -it --net=host lensesio/fast-data-dev bash
容器启动失败并显示主机名错误
/etc/hosts:127.0.0.1 YourHostname localhost无法从其他机器访问服务
-e ADV_HOST=<您的IP>并确保防火墙允许连接内存不足错误
-e CONNECT_HEAP=2G -e BROKER_HEAP_OPTS="-Xmx1G"SSL连接问题
fastdatabash# 基本构建 docker build -t local/fast-data-dev . # 多架构构建 docker buildx build --platform linux/amd64,linux/arm64 -t local/fast-data-dev .
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429