冠军

导航

使用 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

Reference

posted on 2025-03-26 09:19  冠军  阅读(282)  评论(0)    收藏  举报