Kinetic Topics Docker镜像是一个用于部署和运行Kinetic Topics服务的容器化解决方案。Kinetic Topics是一个高性能的分布式主题消息系统,旨在提供可靠的消息发布/订阅功能,支持实时数据传输和处理。
该镜像封装了Kinetic Topics服务的所有必要组件,简化了部署流程,确保了环境一致性,并支持快速扩展。
Kinetic Topics Docker镜像适用于以下场景:
bashdocker run -d --name kinetic-topics -p 8080:8080 kinetic-topics:latest
bashdocker run -d --name kinetic-topics \ -p 8080:8080 \ -e KINETIC_TOPICS_NODE_ID=node1 \ -e KINETIC_TOPICS_CLUSTER_NAME=my-cluster \ kinetic-topics:latest
Kinetic Topics支持以下环境变量进行配置:
| 环境变量名称 | 描述 | 默认值 | 必需 |
|---|---|---|---|
KINETIC_TOPICS_NODE_ID | 节点唯一标识符 | 自动生成 | 否 |
KINETIC_TOPICS_CLUSTER_NAME | 集群名称 | default | 否 |
KINETIC_TOPICS_LISTEN_ADDRESS | 服务监听地址 | 0.0.0.0 | 否 |
KINETIC_TOPICS_PORT | 服务端口 | 8080 | 否 |
KINETIC_TOPICS_ADVERTISE_ADDRESS | 集群通信地址 | 容器IP | 否 |
KINETIC_TOPICS_SEED_NODES | 集群种子节点 | 空 | 否 |
KINETIC_TOPICS_DATA_DIR | 数据存储目录 | /data | 否 |
KINETIC_TOPICS_LOG_LEVEL | 日志级别 | info | 否 |
KINETIC_TOPICS_MAX_MESSAGE_SIZE | 最大消息大小(MB) | 10 | 否 |
KINETIC_TOPICS_AUTH_ENABLED | 是否启用认证 | false | 否 |
KINETIC_TOPICS_USERNAME | 管理员用户名 | admin | 否 |
KINETIC_TOPICS_PASSWORD | 管理员密码 | 随机生成 | 否 |
为确保数据持久化,建议挂载数据卷:
bashdocker run -d --name kinetic-topics \ -p 8080:8080 \ -v /host/path/to/data:/data \ kinetic-topics:latest
如需更复杂的配置,可通过挂载配置文件实现:
bashdocker run -d --name kinetic-topics \ -p 8080:8080 \ -v /host/path/to/config:/etc/kinetic-topics \ kinetic-topics:latest
配置文件示例 (kinetic-topics.yml):
yamlnode: id: "node1" listenAddress: "0.0.0.0" port: 8080 advertiseAddress: "192.168.1.100" cluster: name: "my-cluster" seedNodes: ["192.168.1.101:8080", "192.168.1.102:8080"] storage: dataDir: "/data" retentionPolicy: "7d" maxMessageSize: *** # 10MB network: maxConnections: 1000 receiveBufferSize: *** sendBufferSize: *** security: enabled: true tls: enabled: false authentication: type: "password" users: - username: "admin" passwordHash: "$2a$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
以下是使用Docker Compose部署3节点Kinetic Topics集群的示例:
yamlversion: '3.8' services: kinetic-topics-1: image: kinetic-topics:latest container_name: kinetic-topics-1 ports: - "8081:8080" environment: - KINETIC_TOPICS_NODE_ID=node1 - KINETIC_TOPICS_CLUSTER_NAME=kinetic-cluster - KINETIC_TOPICS_ADVERTISE_ADDRESS=kinetic-topics-1 - KINETIC_TOPICS_SEED_NODES=kinetic-topics-1:8080,kinetic-topics-2:8080,kinetic-topics-3:8080 - KINETIC_TOPICS_DATA_DIR=/data volumes: - data-node1:/data networks: - kinetic-network restart: unless-stopped kinetic-topics-2: image: kinetic-topics:latest container_name: kinetic-topics-2 ports: - "8082:8080" environment: - KINETIC_TOPICS_NODE_ID=node2 - KINETIC_TOPICS_CLUSTER_NAME=kinetic-cluster - KINETIC_TOPICS_ADVERTISE_ADDRESS=kinetic-topics-2 - KINETIC_TOPICS_SEED_NODES=kinetic-topics-1:8080,kinetic-topics-2:8080,kinetic-topics-3:8080 - KINETIC_TOPICS_DATA_DIR=/data volumes: - data-node2:/data networks: - kinetic-network restart: unless-stopped kinetic-topics-3: image: kinetic-topics:latest container_name: kinetic-topics-3 ports: - "8083:8080" environment: - KINETIC_TOPICS_NODE_ID=node3 - KINETIC_TOPICS_CLUSTER_NAME=kinetic-cluster - KINETIC_TOPICS_ADVERTISE_ADDRESS=kinetic-topics-3 - KINETIC_TOPICS_SEED_NODES=kinetic-topics-1:8080,kinetic-topics-2:8080,kinetic-topics-3:8080 - KINETIC_TOPICS_DATA_DIR=/data volumes: - data-node3:/data networks: - kinetic-network restart: unless-stopped networks: kinetic-network: driver: bridge volumes: data-node1: data-node2: data-node3:
启动集群:
bashdocker-compose up -d
查看集群状态:
bashdocker-compose logs -f
bashdocker logs -f kinetic-topics
Kinetic Topics默认在 /metrics 端点提供Prometheus格式的监控指标:
bashcurl http://localhost:8080/metrics
bashdocker exec -it kinetic-topics curl http://localhost:8080/health
正常响应:
json{"status": "healthy", "nodeId": "node1", "clusterSize": 1}
只需启动新的Kinetic Topics容器,并将KINETIC_TOPICS_SEED_NODES设置为现有集群中的任意节点。
bashdocker exec -it kinetic-topics /opt/kinetic-topics/bin/backup -d /data/backup
然后可以将备份文件从容器中复制出来:
bashdocker cp kinetic-topics:/data/backup ./local-backup
bashdocker pull kinetic-topics:latest docker stop kinetic-topics docker rm kinetic-topics docker run -d --name kinetic-topics [OPTIONS] kinetic-topics:latest
建议在升级前备份数据,并在新版本启动时使用相同的数据卷。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 等镜像仓库
无需登录使用专属域名加速