在 Docker 中运行 JetStream

本小教程将展示如何在本地 Docker 容器中运行一个启用了 JetStream 的 NATS 服务器。这使得您可以快速且无风险地试用 JetStream 的多种功能。

使用官方的 nats 镜像启动一个服务器。通过 -js 选项启用 JetStream,通过 -p 选项将本地的 4222 端口转发到容器内的服务器端口(4222 是默认的客户端连接端口)。

docker run -p 4222:4222 nats -js

要将 JetStream 数据持久化到卷中,可以结合使用 -v-sd 选项:

docker run -p 4222:4222 -v nats:/data nats -js -sd /data

服务器运行后,使用 nats bench 创建一个流并发布一些消息到该流。

nats bench -s localhost:4222 benchsubject --js --pub 1 --msgs=100000

JetStream 会持久化这些消息(默认情况下存储在磁盘上)。现在可以通过以下命令消费这些消息:

nats bench -s localhost:4222 benchsubject --js --sub 3 --msgs=100000

您还可以使用 nats 命令检查流的各个方面,例如:

nats -s localhost:4222 stream list
╭────────────────────────────────────────────────────────────────────────────────────╮
│                                       Streams                                      │
├─────────────┬─────────────┬─────────────────────┬──────────┬────────┬──────────────┤
│ Name        │ Description │ Created             │ Messages │ Size   │ Last Message │
├─────────────┼─────────────┼─────────────────────┼──────────┼────────┼──────────────┤
│ benchstream │             │ 2024-06-07 20:26:38 │ 100,00016 MiB │ 35s          │
╰─────────────┴─────────────┴─────────────────────┴──────────┴────────┴──────────────╯

相关和有用的信息: