Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

# Configure a cluster that's dedicated to always sync writes.
server_tags: ["sync:always"]
jetstream {
sync_interval: always
}nats stream add --replicas 3 --tag sync:alwaysnats stream add ORDERS --subjects "ORDERS.*" --ack --max-msgs=-1 --max-bytes=-1 --max-age=1y --storage file --retention limits --max-msg-size=-1 --discard=old
nats consumer add ORDERS NEW --filter ORDERS.received --ack explicit --pull --deliver all --max-deliver=-1 --sample 100
nats consumer add ORDERS DISPATCH --filter ORDERS.processed --ack explicit --pull --deliver all --max-deliver=-1 --sample 100
nats consumer add ORDERS MONITOR --filter '' --ack none --target monitor.ORDERS --deliver last --replay instantnats account infoJetStream Account Information:
JetStream is not supported in this accountnats stream add --config stream_with_sources.jsonnats account infoAccount Information
User:
Account: $G
Expires: never
Client ID: 5
Client IP: 127.0.0.1
RTT: 128µs
Headers Supported: true
Maximum Payload: 1.0 MiB
Connected URL: nats://127.0.0.1:4222
Connected Address: 127.0.0.1:4222
Connected Server ID: NAMR7YBNZA3U2MXG2JH3FNGKBDVBG2QTMWVO6OT7XUSKRINKTRFBRZEC
Connected Server Version: 2.11.0-dev
TLS Connection: no
JetStream Account Information:
Account Usage:
Storage: 0 B
Memory: 0 B
Streams: 0
Consumers: 0
Account Limits:
Max Message Payload: 1.0 MiB
Tier: Default:
Configuration Requirements:
Stream Requires Max Bytes Set: false
Consumer Maximum Ack Pending: Unlimited
Stream Resource Usage Limits:
Memory: 0 B of Unlimited
Memory Per Stream: Unlimited
Storage: 0 B of Unlimited
Storage Per Stream: Unlimited
Streams: 0 of Unlimited
Consumers: 0 of UnlimitedJetStream Account Information:
JetStream is not supported in this accountnats stream add my_stream? Subjects foo
? Storage file
? Replication 1
? Retention Policy Limits
? Discard Policy Old
? Stream Messages Limit -1
? Per Subject Messages Limit -1
? Total Stream Size -1
? Message TTL -1
? Max Message Size -1
? Duplicate tracking time window 2m0s
? Allow message Roll-ups No
? Allow message deletion Yes
? Allow purging subjects or the entire stream Yes
Stream my_stream was created
Information for Stream my_stream created 2024-06-07 12:29:36
Subjects: foo
Replicas: 1
Storage: File
Options:
Retention: Limits
Acknowledgments: true
Discard Policy: Old
Duplicate Window: 2m0s
Direct Get: true
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: 0
Bytes: 0 B
First Sequence: 0
Last Sequence: 0
Active Consumers: 0nats stream info my_streamInformation for Stream my_stream created 2024-06-07 12:29:36
Subjects: foo
Replicas: 1
Storage: File
Options:
Retention: Limits
Acknowledgments: true
Discard Policy: Old
Duplicate Window: 2m0s
Direct Get: true
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: 0
Bytes: 0 B
First Sequence: 0
Last Sequence: 0
Active Consumers: 0nats pub foo --count=1000 --sleep 1s "publication #{{.Count}} @ {{.TimeStamp}}"nats consumer add? Consumer name pull_consumer
? Delivery target (empty for Pull Consumers)
? Start policy (all, new, last, subject, 1h, msg sequence) all
? Acknowledgment policy explicit
? Replay policy instant
? Filter Stream by subjects (blank for all)
? Maximum Allowed Deliveries -1
? Maximum Acknowledgments Pending 0
? Deliver headers only without bodies No
? Add a Retry Backoff Policy No
? Select a Stream my_stream
Information for Consumer my_stream > pull_consumer created 2024-06-07T12:32:09-05:00
Configuration:
Name: pull_consumer
Pull Mode: true
Deliver Policy: All
Ack Policy: Explicit
Ack Wait: 30.00s
Replay Policy: Instant
Max Ack Pending: 1,000
Max Waiting Pulls: 512
State:
Last Delivered Message: Consumer sequence: 0 Stream sequence: 0
Acknowledgment Floor: Consumer sequence: 0 Stream sequence: 0
Outstanding Acks: 0 out of maximum 1,000
Redelivered Messages: 0
Unprocessed Messages: 74
Waiting Pulls: 0 of maximum 512nats consumer next my_stream pull_consumer --count 1000nats account infoConnection Information:
Client ID: 6
Client IP: 127.0.0.1
RTT: 64.996µs
Headers Supported: true
Maximum Payload: 1.0 MiB
Connected URL: nats://127.0.0.1:4222
Connected Address: 127.0.0.1:4222
Connected Server ID: ND2XVDA4Q363JOIFKJTPZW3ZKZCANH7NJI4EJMFSSPTRXDBFG4M4C34K
JetStream Account Information:
Memory: 0 B of Unlimited
Storage: 0 B of Unlimited
Streams: 0 of Unlimited
Consumers: 0 of Unlimited nats kv add my-kvmy_kv Key-Value Store Status
Bucket Name: my-kv
History Kept: 1
Values Stored: 0
Compressed: false
Backing Store Kind: JetStream
Bucket Size: 0 B
Maximum Bucket Size: unlimited
Maximum Value Size: unlimited
Maximum Age: unlimited
JetStream Stream: KV_my-kv
Storage: Filenats kv put my-kv Key1 Value1nats kv get my-kv Key1my-kv > Key1 created @ 12 Oct 21 20:08 UTC
Value1nats kv del my-kv Key1nats kv create my-sem Semaphore1 Value1nats kv create my-sem Semaphore1 Value1
nats: error: nats: wrong last sequence: 1: key existsnats kv update my-sem Semaphore1 Value2 13nats kv update my-sem Semaphore1 Value2 13
nats: error: nats: wrong last sequence: 14nats kv watch my-kv[2021-10-12 13:15:03] DEL my-kv > Key1nats kv put my-kv Key1 Value2[2021-10-12 13:25:14] PUT my-kv > Key1: Value2nats kv rm my-kv{
"name": "SOURCE_TARGET",
"subjects": [
"foo1.ext.*",
"foo2.ext.*"
],
"discard": "old",
"duplicate_window": 120000000000,
"sources": [
{
"name": "SOURCE1_ORIGIN",
},
],
"deny_delete": false,
"sealed": false,
"max_msg_size": -1,
"allow_rollup_hdrs": false,
"max_bytes": -1,
"storage": "file",
"allow_direct": false,
"max_age": 0,
"max_consumers": -1,
"max_msgs_per_subject": -1,
"num_replicas": 1,
"name": "SOURCE_TARGET",
"deny_purge": false,
"compression": "none",
"max_msgs": -1,
"retention": "limits",
"mirror_direct": false
}{
"name": "SOURCE_TARGET",
"subjects": [
"foo1.ext.*",
"foo2.ext.*"
],
"discard": "old",
"duplicate_window": 120000000000,
"sources": [
{
"name": "SOURCE1_ORIGIN",
"filter_subject": "foo1.bar",
"opt_start_seq": 42,
"external": {
"deliver": "",
"api": "$JS.domainA.API"
}
},
{
"name": "SOURCE2_ORIGIN",
"filter_subject": "foo2.bar"
}
],
"consumer_limits": {
},
"deny_delete": false,
"sealed": false,
"max_msg_size": -1,
"allow_rollup_hdrs": false,
"max_bytes": -1,
"storage": "file",
"allow_direct": false,
"max_age": 0,
"max_consumers": -1,
"max_msgs_per_subject": -1,
"num_replicas": 1,
"name": "SOURCE_TARGET",
"deny_purge": false,
"compression": "none",
"max_msgs": -1,
"retention": "limits",
"mirror_direct": false
}{
"name": "MIRROR_TARGET"
"discard": "old",
"mirror": {
"name": "MIRROR_ORIGIN"
},
"deny_delete": false,
"sealed": false,
"max_msg_size": -1,
"allow_rollup_hdrs": false,
"max_bytes": -1,
"storage": "file",
"allow_direct": false,
"max_age": 0,
"max_consumers": -1,
"max_msgs_per_subject": -1,
"num_replicas": 1,
"name": "MIRROR_TARGET",
"deny_purge": false,
"compression": "none",
"max_msgs": -1,
"retention": "limits",
"mirror_direct": false
}{
"name": "MIRROR_TARGET"
"discard": "old",
"mirror": {
"opt_start_time": "2024-07-11T08:57:20.4441646Z",
"external": {
"deliver": "",
"api": "$JS.domainB.API"
},
"name": "MIRROR_ORIGIN"
},
"consumer_limits": {
},
"deny_delete": false,
"sealed": false,
"max_msg_size": -1,
"allow_rollup_hdrs": false,
"max_bytes": -1,
"storage": "file",
"allow_direct": false,
"max_age": 0,
"max_consumers": -1,
"max_msgs_per_subject": -1,
"num_replicas": 1,
"name": "MIRROR_TARGET",
"deny_purge": false,
"compression": "none",
"max_msgs": -1,
"retention": "limits",
"mirror_direct": false
}nats account infoConnection Information:
Client ID: 6
Client IP: 127.0.0.1
RTT: 64.996µs
Headers Supported: true
Maximum Payload: 1.0 MiB
Connected URL: nats://127.0.0.1:4222
Connected Address: 127.0.0.1:4222
Connected Server ID: ND2XVDA4Q363JOIFKJTPZW3ZKZCANH7NJI4EJMFSSPTRXDBFG4M4C34K
JetStream Account Information:
Memory: 0 B of Unlimited
Storage: 0 B of Unlimited
Streams: 0 of Unlimited
Consumers: 0 of UnlimitedJetStream Account Information:
JetStream is not supported in this accountnats object add myobjbucketmyobjbucket Object Store Status
Bucket Name: myobjbucket
Replicas: 1
TTL: unlimitd
Sealed: false
Size: 0 B
Backing Store Kind: JetStream
JetStream Stream: OBJ_myobjbucketnats object put myobjbucket ~/Movies/NATS-logo.mov1.5 GiB / 1.5 GiB [====================================================================================]
Object information for myobjbucket > /Users/jnmoyne/Movies/NATS-logo.mov
Size: 1.5 GiB
Modification Time: 14 Apr 22 00:34 +0000
Chunks: 12,656
Digest: sha-256 8ee0679dd1462de393d81a3032d71f43d2bc89c0c8a557687cfe2787e926nats object put --name /Movies/NATS-logo.mov myobjbucket ~/Movies/NATS-logo.mov1.5 GiB / 1.5 GiB [====================================================================================]
Object information for myobjbucket > /Movies/NATS-logo.mov
Size: 1.5 GiB
Modification Time: 14 Apr 22 00:34 +0000
Chunks: 12,656
Digest: sha-256 8ee0679dd1462de393d81a3032d71f43d2bc89c0c8a557687cfe2787e926nats object ls myobjbucket╭───────────────────────────────────────────────────────────────────────────╮
│ Bucket Contents │
├─────────────────────────────────────┬─────────┬───────────────────────────┤
│ Name │ Size │ Time │
├─────────────────────────────────────┼─────────┼───────────────────────────┤
│ /Users/jnmoyne/Movies/NATS-logo.mov │ 1.5 GiB │ 2022-04-13T17:34:55-07:00 │
│ /Movies/NATS-logo.mov │ 1.5 GiB │ 2022-04-13T17:35:41-07:00 │
╰─────────────────────────────────────┴─────────┴───────────────────────────╯nats object get myobjbucket ~/Movies/NATS-logo.mov1.5 GiB / 1.5 GiB [====================================================================================]
Wrote: 1.5 GiB to /Users/jnmoyne/NATS-logo.mov in 5.68s average 279 MiB/snats object get myobjbucket --output /temp/Movies/NATS-logo.mov /Movies/NATS-logo.mov1.5 GiB / 1.5 GiB [====================================================================================]
Wrote: 1.5 GiB to /temp/Movies/NATS-logo.mov in 5.68s average 279 MiB/snats object rm myobjbucket ~/Movies/NATS-logo.mov? Delete 1.5 GiB byte file myobjbucket > /Users/jnmoyne/Movies/NATS-logo.mov? Yes
Removed myobjbucket > /Users/jnmoyne/Movies/NATS-logo.mov
myobjbucket Object Store Status
Bucket Name: myobjbucket
Replicas: 1
TTL: unlimitd
Sealed: false
Size: 16 MiB
Backing Store Kind: JetStream
JetStream Stream: OBJ_myobjbucketnats object info myobjbucketmyobjbucket Object Store Status
Bucket Name: myobjbucket
Replicas: 1
TTL: unlimitd
Sealed: false
Size: 1.6 GiB
Backing Store Kind: JetStream
JetStream Stream: OBJ_myobjbucketnats object watch myobjbucket[2022-04-13 17:51:28] PUT myobjbucket > /Users/jnmoyne/Movies/NATS-logo.mov: 1.5 GiB bytes in 12,656 chunks
[2022-04-13 17:53:27] DEL myobjbucket > /Users/jnmoyne/Movies/NATS-logo.movnats object seal myobjbucket? Really seal Bucket myobjbucket, sealed buckets can not be unsealed or modified Yes
myobjbucket has been sealed
myobjbucket Object Store Status
Bucket Name: myobjbucket
Replicas: 1
TTL: unlimitd
Sealed: true
Size: 1.6 GiB
Backing Store Kind: JetStream
JetStream Stream: OBJ_myobjbucketAckWaitHeadersOnly - If true, the message data will not be included in the re-published message, only an additional header Nats-Msg-Size indicating the size of the message in bytes.
nats stream add --cluster aws-us-east1-c1cluster {
name: aws-us-east1-c1
# etc..
}// Server A
server_tags: ["cloud:aws", "region:us-east1", "az:a"]
jetstream: {
unique_tag: "az"
}
// Server B
server_tags: ["cloud:aws", "region:us-east1", "az:b"]
jetstream: {
unique_tag: "az"
}
// Server C
server_tags: ["cloud:aws", "region:us-east1", "az:c"]
jetstream: {
unique_tag: "az"
}nats stream add --tag region:us-east1