
library/nats-streamingNATS Streaming Server 已被弃用。关键错误修复和安全修复将持续到 2023 年 6 月。需要持久化功能的 NATS 应用程序应使用 JetStream。
nats-streaming 是 NATS 消息系统的高性能流服务器 Docker 镜像,提供持久化消息传递能力,支持发布/订阅、队列和请求/回复等消息模式。
NATS Streaming Server 暴露以下端口:
4222: 客户端连接端口8222: HTTP 管理端口,用于信息报告由于 Windows Docker 镜像构建的限制,不带参数运行镜像时,将启动基于内存存储的 NATS Streaming 服务器,监听端口 4222 和管理端口 8222。如果需要指定其他参数,必须显式指定可执行文件名:
bashdocker run -p 4223:4223 -p 8223:8223 nats-streaming nats-streaming-server -p 4223 -m 8223
如果需要指定入口点:
bashdocker run --entrypoint c:/nats-streaming-server/nats-streaming-server -p 4222:4222 -p 8222:8222 nats-streaming
对于非 Windows 镜像,可直接在命令行传递参数。例如,将监听端口和管理端口分别更改为 4223 和 8223:
bashdocker run -p 4223:4223 -p 8223:8223 nats-streaming -p 4223 -m 8223
如果需要指定入口点:
bashdocker run --entrypoint /nats-streaming-server -p 4222:4222 -p 8222:8222 nats-streaming
bash# 运行 NATS Streaming 服务器 # 4222 端口用于客户端连接 # 8222 端口是 HTTP 管理端口 docker run -d -p 4222:4222 -p 8222:8222 nats-streaming
bash# 在端口 4444 上运行 NATS Streaming 服务器 docker run -d -p 4444:4444 -p 8222:8222 nats-streaming -p 4444
bash# 使用文件存储而非内存存储 docker run -d -p 4222:4222 -p 8222:8222 \ -v ./data:/datastore \ nats-streaming -store file -dir /datastore
bash# 首先运行 NATS 服务器 docker run -d --name=nats-main -p 4222:4222 nats # 然后启动 Streaming 服务器并连接到外部 NATS 服务器 docker run -d --link nats-main -p 8222:8222 \ -v ./data:/datastore \ nats-streaming -store file -dir /datastore -ns nats://nats-main:4222
yamlversion: '3' services: nats: image: nats ports: - "4222:4222" - "8222:8222" nats-streaming: image: nats-streaming depends_on: - nats command: -store file -dir /datastore -ns nats://nats:4222 volumes: - ./data:/datastore ports: - "8223:8222"
-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 (否则使用嵌入式 NATS) -sc, --stan_config <string> 流服务器配置文件 -hbi, --hb_interval <duration> 服务器向客户端发送心跳的间隔 -hbt, --hb_timeout <duration> 服务器等待心跳响应的时间 -hbf, --hb_fail_count <int> 服务器关闭客户端连接前的失败心跳次数 --ft_group <string> FT 组名称。一个组可以有 2 个或更多服务器,只有一个活动服务器 -sl, --signal <signal>[=<pid>] 向 nats-streaming-server 进程发送信号 --encrypt <bool> 指定服务器是否应使用静态加密 --encryption_cipher <string> 用于加密的密码 (AES 或 CHAHA) --encryption_key <string> 加密密钥 (建议通过 NATS_STREAMING_ENCRYPTION_KEY 环境变量指定) --replace_durable <bool> 替换现有持久订阅而不是报告重复错误
--clustered <bool> 以集群配置运行服务器 (默认: false) --cluster_node_id <string> 集群中节点的 ID (默认: 随机 UUID) --cluster_bootstrap <bool> 如果没有现有状态,引导集群 (默认: false) --cluster_peers <string, ...> 集群对等节点 ID 的逗号分隔列表 --cluster_log_path <string> 存储日志复制数据的目录 --cluster_log_cache_size <int> 内存中缓存的日志条目数 (默认: 512) --cluster_log_snapshots <int> 保留的日志快照数 (默认: 2) --cluster_trailing_logs <int> 快照和压缩后保留的日志条目数 --cluster_sync <bool> 每次写入复制日志和消息存储后执行文件同步 --cluster_raft_logging <bool> 启用 Raft 库日志记录 (默认禁用) --cluster_allow_add_remove_node <bool> 允许向领导者发送 NATS 请求以添加/删除集群节点
-a, --addr <string> 绑定到主机地址 (默认: 0.0.0.0) -p, --port <int> 客户端端口 (默认: 4222) -P, --pid <string> 存储 PID 的文件 -m, --http_port <int> HTTP 监控端口 -ms,--https_port <int> HTTPS 监控端口 -c, --config <string> 配置文件
更多命令行选项请参考官方文档。
有关如何进一步配置 NATS Streaming 服务器的详细信息,请参见 官方文档。
流服务器本身与以前的版本向后兼容,但是 v0.15.0+ 版本现在嵌入了 NATS Server 2.0,这意味着如果使用嵌入式 NATS 服务器并希望将其路由到现有的 v0.14.3- 服务器,由于 NATS Server 路由协议的更改,它将失败。但是,可以使用 v0.15.0+ 并将其连接到现有的 NATS 集群,因此可以混合使用 v0.15.0 和 v0.14.3- 流服务器。
查看此镜像中包含的软件的 许可证信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能具有其他许可证(例如来自基础发行版的 Bash 等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可证信息可能会在 repo-info 仓库的 nats-streaming/ 目录 中找到。
对于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用符合其中包含的所有软件的相关许可证。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务