https://github.com/d7561985/nats-ab
NATS cluster deployment and test project.
https://github.com/d7561985/nats-ab
ab aws bench nats terraform
Last synced: 3 months ago
JSON representation
NATS cluster deployment and test project.
- Host: GitHub
- URL: https://github.com/d7561985/nats-ab
- Owner: d7561985
- License: mit
- Created: 2022-02-13T14:54:30.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-03-06T04:10:05.000Z (about 3 years ago)
- Last Synced: 2025-04-02T06:43:39.590Z (about 1 year ago)
- Topics: ab, aws, bench, nats, terraform
- Language: Go
- Homepage:
- Size: 154 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: readme.adoc
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
= NATS-AB
Compliance tool to check 2 NATS users: `NATS_USER` - according GitOps approach this user not allowed to create JetStream Stream or Consumers
SLO:
* `NATS_USER` - according GitOps approach this user not allowed to create JetStream Stream or Consumers
* `NATS_STREAM_USER` - this user applicable for create JS as user in GitOps job
* `NATS_USER` - can send and read messages via JS
== Install
=== download
https://github.com/d7561985/nats-ab/releases
=== golang
Go 1.16+
[bash]
----
go install github.com/d7561985/nats-ab@latest
----
Go version < 1.16
[bash]
----
go get -u github.com/d7561985/nats-ab@latest
----
== Use-cases
=== mode
To check leaf: put mode = 1 in hub cluster and 2 in leaf.
NOTE: first create leaf subscriber
=== replica
Check performance with different replica value in cluster
=== threads
Examine number of threads (services) producers or consumer.
== How to use
CLI support help command where you will find everything suitable:
[bash]
----
NAME:
- run compliance scenario tests
USAGE:
DESCRIPTION:
OPTIONS:
--mode value Some scenarios required 2 or more applications launches (between leaf nodes), value: 0: send and receive, 1: only send, 2: only receive (default: 0) [$MODE]
--count value messages to publish/receive (default: 1000000) [$MSG_NUM]
--msgSize value messages to publish/receive (default: 128) [$MSG_SIZE]
--threads value consent execution (default: 5) [$THREADS]
--drainTime value wait before clean up after scenario (default: 30s) [$DRAIN_TIME]
--addr value NATS URI list (default: "nats://127.0.0.1:4222") [$NATS_ADDR]
--replicas value stream reapplication usage (default: 1) [$REPLICAS]
--accUser value, -u value none sys account user who will send or read messages (default: "client") [$ACC_USER]
--accUserPassword value, -p value password for accUser (default: ****) [$ACC_USER_PASSWORD]
--accAdmin value, -a value none sys account user admin with no restriction (default: "admin") [$ACC_ADMIN]
--accAdminPassword value, --ap value password for accAdmin (default: ****) [$ACC_ADMIN_PASSWORD]
--sysUser value sys account user [$SYS_USER]
--sysPassword value sysUser password (default: ****) [$SYS_USER_PASSWORD]
--help, -h show help (default: false)
----
== TEST
=== Scenario #1
Positive test.
1. `NATS_STREAM_USER` create stream and consumer with `REPLICAS` num.
1. `NATS_USER` send message `PUSH_NUM` times
1. `NATS_USER` tries to reed them.