本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
NATS Streaming Server 已被弃用。关键错误修复和安全修复将持续到 2023 年 6 月。需要持久化功能的 NATS 应用程序应使用 JetStream。
nats-streaming 是 NATS 消息系统的高性能流服务器,提供持久化消息传递、消息重放和订阅者容错等功能,适用于需要可靠消息传递的分布式系统。
repos/nats-streaming/ 目录注意:该镜像已不再提供官方支持的标签和架构。
NATS Streaming Server 暴露以下端口:
4222:客户端连接端口8222:HTTP管理端口,用于信息报告由于Windows Docker镜像构建限制,不带参数运行镜像时,将使用基于内存的存储,监听端口4222和管理端口8222。如需指定其他参数,需显式指定可执行文件名:
# 自定义端口示例 docker run -p 4223:4223 -p 8223:8223 nats-streaming nats-streaming-server -p 4223 -m 8223 # 指定入口点 docker run --entrypoint c:/nats-streaming-server/nats-streaming-server -p 4222:4222 -p 8222:8222 nats-streaming
直接在命令行传递参数给NATS Streaming服务器:
# 自定义端口示例 docker run -p 4223:4223 -p 8223:8223 nats-streaming -p 4223 -m 8223 # 指定入口点 docker run --entrypoint /nats-streaming-server -p 4222:4222 -p 8222:8222 nats-streaming
# 启动NATS Streaming服务器 docker run -d -p 4222:4222 -p 8222:8222 nats-streaming
输出信息(非后台运行时):
[1] 2022/10/11 14:57:50.404688 [INF] STREAM: Starting nats-streaming-server[test-cluster] version 0.25.2 [1] 2022/10/11 14:57:50.404739 [INF] STREAM: ServerID: fbZJjwGYLBpNM5I8z23NSN [1] 2022/10/11 14:57:50.404741 [INF] STREAM: Go version: go1.19.2 [1] 2022/10/11 14:57:50.404743 [INF] STREAM: Git commit: [9e599667] [1] 2022/10/11 14:57:50.406004 [INF] Starting nats-server [1] 2022/10/11 14:57:50.406009 [INF] Version: 2.9.3 [1] 2022/10/11 14:57:50.406011 [INF] Git: [25e82d7] [1] 2022/10/11 14:57:50.406013 [INF] Name: NDQOBTB34ECZWAKAJAREPEXQPXGKUEJEZINCHV2CIHGGJQCSCVPQPU5W [1] 2022/10/11 14:57:50.406015 [INF] ID: NDQOBTB34ECZWAKAJAREPEXQPXGKUEJEZINCHV2CIHGGJQCSCVPQPU5W [1] 2022/10/11 14:57:50.406423 [INF] Listening for client connections on 0.0.0.0:4222 [1] 2022/10/11 14:57:50.406679 [INF] Server is ready [1] 2022/10/11 14:57:50.434935 [INF] STREAM: Recovering the state... [1] 2022/10/11 14:57:50.434945 [INF] STREAM: No recovered state [1] 2022/10/11 14:57:50.435271 [INF] STREAM: Message store is MEMORY [1] 2022/10/11 14:57:50.435303 [INF] STREAM: ---------- Store Limits ---------- [1] 2022/10/11 14:57:50.435306 [INF] STREAM: Channels: 100 * [1] 2022/10/11 14:57:50.435308 [INF] STREAM: --------- Channels Limits -------- [1] 2022/10/11 14:57:50.435310 [INF] STREAM: Subscriptions: 1000 * [1] 2022/10/11 14:57:50.435311 [INF] STREAM: Messages : 1000000 * [1] 2022/10/11 14:57:50.435313 [INF] STREAM: Bytes : 976.56 MB * [1] 2022/10/11 14:57:50.435315 [INF] STREAM: Age : unlimited * [1] 2022/10/11 14:57:50.435316 [INF] STREAM: Inactivity : unlimited * [1] 2022/10/11 14:57:50.435318 [INF] STREAM: ---------------------------------- [1] 2022/10/11 14:57:50.435320 [INF] STREAM: Streaming Server is ready
使用文件存储代替内存存储:
docker run -d -p 4222:4222 -p 8222:8222 \ -v $(pwd)/datastore:/datastore \ nats-streaming -store file -dir /datastore
docker run -d --name=nats-main -p 4222:4222 -p 6222:6222 -p 8222:8222 nats
docker run -d --link nats-main -p 4223:4222 -p 8223:8222 \ nats-streaming -store file -dir datastore -ns nats://nats-main:4222
NATS Streaming Server 支持以下主要命令行选项:
Streaming Server Options: -cid, --cluster_id <string> 集群ID (默认: test-cluster) -st, --store <string> 存储类型: MEMORY|FILE|SQL (默认: MEMORY) --dir <string> FILE存储类型的根目录 -mc, --max_channels <int> 最大通道数 (0表示无限制) -msu, --max_subs <int> 每个通道的最大订阅数 (0表示无限制) -mm, --max_msgs <int> 每个通道的最大消息数 (0表示无限制) -mb, --max_bytes <size> 每个通道的消息总大小限制 (0表示无限制) -ma, --max_age <duration> 消息最大存储时间 ("0s"表示无限制) -mi, --max_inactivity <duration> 通道无活动后垃圾回收时间 (0表示无限制) -ns, --nats_server <string> 连接外部NATS服务器URL (默认嵌入式) -sc, --stan_config <string> 流式服务器配置文件 -hbi, --hb_interval <duration> 服务器向客户端发送心跳的间隔 -hbt, --hb_timeout <duration> 服务器等待心跳响应的时间 -hbf, --hb_fail_count <int> 服务器关闭客户端连接前的失败心跳次数 --ft_group <string> FT组名称,2个或更多服务器共享相同数据存储 -p, --port <int> 客户端端口 (默认: 4222) -m, --http_port <int> HTTP管理端口
完整命令行选项列表可通过以下命令查看:
docker run --rm nats-streaming --help
可以通过配置文件进行更详细的配置,使用-sc或--stan_config选项指定配置文件:
docker run -d -p 4222:4222 -p 8222:8222 \ -v $(pwd)/stan.conf:/stan.conf \ nats-streaming -sc /stan.conf
配置文件详细说明请参考NATS Streaming Server配置文档。
以下是使用Docker Compose部署NATS Streaming Server与外部NATS服务器的示例:
version: '3' services: nats: image: nats ports: - "4222:4222" - "6222:6222" - "8222:8222" command: "-m 8222" restart: always nats-streaming: image: nats-streaming depends_on: - nats ports: - "4223:4222" - "8223:8222" command: "-store file -dir /datastore -ns nats://nats:4222 -cid my-cluster -m 8222" volumes: - ./datastore:/datastore restart: always
启动:
docker-compose up -d
Docker的-p参数用于将容器端口映射到主机端口,这与NATS Streaming Server自身的-p参数不同。例如,要让NATS Streaming Server监听容器内的4444端口并映射到主机的5555端口:
docker run -p 5555:4444 nats-streaming -p 4444
Streaming服务器本身与以前的版本向后兼容,但v0.15.0+版本嵌入了NATS Server 2.0,如果使用嵌入式NATS服务器并想路由到现有的v0.14.3-服务器,由于NATS Server路由协议的更改,将无法正常工作。但可以将v0.15.0+连接到现有的NATS集群,因此可以混合使用v0.15.0和v0.14.3-流式服务器。
该镜像已被官方弃用,不再接收更新和安全补丁。建议尽快迁移到JetStream。
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429