使用 NATS CLI
管理会话上下文 context
NATS 的会话上下文是用来以命名方式来存储 NATS 连接信息的机制,你可以通过名称在各种连接配置之间进行转换。
通过会话上下文,可以通过命名式的上下文来管理多种连接 NATS 场景,而不需要提供复杂的连接信息。
创建会话上下文
创建会话需要提供连接到 NATS 的信息和对应的名称,下面的示例中,提供的上下文名称是 mynats。
./nats context add mynats --server 127.0.0.1 --description mynats --creds "C:\xxxxx\yyyy.creds" --select
查看当前会话上下文
> ./nats context info
NATS Configuration Context "mynats"
Description: mynats
Server URLs: 127.0.0.1
Credentials: C:\ProgramData\xxxx\NATS\xxxx.creds (OK)
Path: C:\Users\xxxx\.config\nats\context\mynats.json
列出所有的会话上下文
> ./nats context ls
╭─────────────────────────╮
│ Known Contexts │
├───────────┬─────────────┤
│ Name │ Description │
├───────────┼─────────────┤
│ admin │ │
│ localhost │ Localhost │
│ mynats* │ mynats │
│ sys │ │
╰───────────┴─────────────╯
名称后面带有 * 号的就是默认上下文。
选择会话上下文
通过参数 select 来选择默认的上下文。
> ./nats context select mynats
NATS Configuration Context "mynats"
Description: mynats
Server URLs: 127.0.0.1
Credentials: C:\ProgramData\xxxx.creds (OK)
Path: C:\Users\xxxxxx\mynats.json
Stream 管理
检查当前所有的 stream
./nats stream ls
查看 stream 的详细信息
> ./nats stream info JobRequest
Information for Stream JobRequest created 2025-03-17 13:18:31
Subjects: message.jobrequest.>
Replicas: 1
Storage: File
Options:
Retention: WorkQueue
Acknowledgments: true
Discard Policy: Old
Duplicate Window: 2m0s
Allows Msg Delete: true
Allows Purge: true
Allows Rollups: false
Limits:
Maximum Messages: unlimited
Maximum Per Subject: unlimited
Maximum Bytes: unlimited
Maximum Age: unlimited
Maximum Message Size: unlimited
Maximum Consumers: unlimited
State:
Messages: 1
Bytes: 124 B
First Sequence: 1 @ 2025-03-17 13:18:44
Last Sequence: 1 @ 2025-03-17 13:18:44
Active Consumers: 0
Number of Subjects: 1
查看 stream 中的 message
> ./nats stream view JobRequest
[1] Subject: message.jobrequest.e14fcbbb-cccc-46a8-9345-0cb7638dc74c Received: 2025-03-17T15:01:56+08:00
MessagePriority: 100
{"ReportId":"68680e28-9f1f-4845-9a81-6ab1bacd3720" }
查看 stream 中的所有 subject
> ./nats stream subjects JobRequest
╭────────────────────────────────────────────────────────────────────────────────────────╮
│ 6 Subjects in stream JobRequest │
├────────────────────────────────────────────────────────────────────────────────┬───────┤
│ Subject │ Count │
├────────────────────────────────────────────────────────────────────────────────┼───────┤
│ message.jobrequestRequest.6ab86c10-fc6c-47dd-8986-dc61de833256 │ 1 │
│ message.jobrequestRequest.7ebfe018-b384-488d-9d7a-4fdb976f3d30 │ 1 │
│ message.jobrequestRequest.a6ca32dd-22e6-4828-bb52-d887931c6bf9 │ 1 │
│ message.jobrequestRequest.ba522310-979d-4bdd-8883-974f8ae40b47 │ 1 │
│ message.jobrequestRequest.be2b263d-1aab-4e11-969b-9e410d1355e5 │ 1 │
│ message.jobrequestRequest.c6b65350-03fa-4e96-aa21-73db33c6ddf2 │ 1 │
╰────────────────────────────────────────────────────────────────────────────────┴───────╯
删除 stream
> ./nats stream rm JobRequest
[mynats] ? Really delete Stream JobRequest Yes
>
Object Store 管理
查看所有的 Object Store
> ./nats object ls
╭────────────────────────────────────────────────────────────────────────────────╮
│ Object Store Buckets │
├──────────────────┬──────────────────┬─────────────────────┬──────┬─────────────┤
│ Bucket │ Description │ Created │ Size │ Last Update │
├──────────────────┼──────────────────┼─────────────────────┼──────┼─────────────┤
│ JobRequest │ JobRequest │ 2025-03-17 13:33:39 │ 0 B │ never │
╰──────────────────┴──────────────────┴─────────────────────┴──────┴─────────────╯
Object Store 信息
> ./nats object info JobRequest
Information for Object Store Bucket JobRequest created 2025-03-17T13:33:39+08:00
Configuration:
Bucket Name: JobRequest
Description: JobRequest
Replicas: 1
TTL: 3m0s
Sealed: false
Size: 0 B
Maximum Bucket Size: unlimited
Backing Store Kind: JetStream
JetStream Stream: OBJ_JobRequest
Cluster Information:
Name:
Leader: NB63HADBH74NCDHURT65DGVG5TDJJNWJJBIAQIS2OKNZI2RPRA6G3Y2U
列出其中的对象
> ./nats object ls JobRequest
╭───────────────────────────────────────────────────────────────────────────╮
│ Bucket Contents │
├──────────────────────────────────────┬──────┬───────────────────────────┤
│ Name │ Size │ Time │
├──────────────────────────────────────┼──────┼───────────────────────────┤
│ be2b263d-1aab-4e11-969b-9e410d1355e5 │ 0 B │ 2025-03-17T13:45:08+08:00 │
╰──────────────────────────────────────┴──────┴───────────────────────────╯
查看指定消息
使用 ./nats object info 命令查看,需要提供查看的 bucket 名称,以及指定的 object 的 Name.
> ./nats object info JobRequest be2b263d-1aab-4e11-969b-9e410d1355e5
Object information for JobRequest > be2b263d-1aab-4e11-969b-9e410d1355e5
Size: 0 B
Modification Time: 2025-03-17 13:45:08
Chunks: 0
Digest: SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Headers: creater: Server
jobid: be2b263d-1aab-4e11-969b-9e410d1355e5
status: created
删除 Bucket
> ./nats object del JobRequest
[mynats] ? Delete bucket JobRequest and all its files? Yes
>
NATS 性能监控
检查访问 NATS 的访问往返时间。
访问服务器往返时间 rtt (round trip time) to server
> ./nats rtt
nats://127.0.0.1:
127.0.0.1: 510µs
检查延迟
> ./nats latency --server-b 127.0.0.1
09:08:06 ==============================
09:08:06 Pub Server RTT : 1.001ms
09:08:06 Sub Server RTT : 0s
09:08:06 Message Payload: 8B
09:08:06 Target Duration: 5s
09:08:06 Target Msgs/Sec: 1000
09:08:06 Target Band/Sec: 16K
09:08:06 ==============================
09:08:11 HDR Percentiles:
09:08:11 10: 0s
09:08:11 50: 51µs
09:08:11 75: 119µs
09:08:11 90: 249µs
09:08:11 99: 967µs
09:08:11 99.9: 1.182ms
09:08:11 99.99: 1.328ms
09:08:11 99.999: 1.34ms
09:08:11 99.9999: 1.34ms
09:08:11 99.99999: 1.34ms
09:08:11 100: 1.34ms
09:08:11 ==============================
09:08:11 Actual Msgs/Sec: 1009
09:08:11 Actual Band/Sec: 16K
09:08:11 Minimum Latency: 0s
09:08:11 Median Latency : 51µs
09:08:11 Maximum Latency: 1.34ms
09:08:11 1st Sent Wall Time : 11.499ms
09:08:11 Last Sent Wall Time: 4.951115s
09:08:11 Last Recv Wall Time: 4.951115s
浙公网安备 33010602011771号