From d3289e6413a1deca6e1799efd2dd64d73b5a746d Mon Sep 17 00:00:00 2001 From: Ginger Collison Date: Fri, 26 Mar 2021 19:16:40 +0000 Subject: [PATCH] GitBook: [master] 3 pages modified --- SUMMARY.md | 2 +- compare-nats.md | 30 +++++++++++++++--------------- jetstream/resource_management.md | 7 +++---- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index f04c6ed..2201e49 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -135,7 +135,7 @@ * [Terraform](jetstream/configuration_mgmt/terraform.md) * [GitHub Actions](jetstream/configuration_mgmt/github_actions.md) * [Kubernetes Controller](jetstream/configuration_mgmt/kubernetes_controller.md) -* [Disaser Recovery](jetstream/disaster_recovery.md) +* [Disaster Recovery](jetstream/disaster_recovery.md) * [Model Deep Dive](jetstream/model_deep_dive.md) * [NATS API Reference](jetstream/nats_api_reference.md) * [Multi-tenancy & Resource Mgmt](jetstream/resource_management.md) diff --git a/compare-nats.md b/compare-nats.md index 5064432..09c0a00 100644 --- a/compare-nats.md +++ b/compare-nats.md @@ -8,7 +8,7 @@ This feature comparison is a summary of a few of the major components in several In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pulsar, and gRPC. -### Language and Platform Coverage +## Language and Platform Coverage | Project | Client Languages and Platforms | | :--- | :--- | @@ -18,7 +18,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | 7 client languages, 5 third-party clients - tested on macOS and Linux. | | **Rabbit** | At least 10 client platforms that are maintainer-supported with over 50 community supported client types. Servers are supported on the following platforms: Linux Windows, NT. | -### Built-in Patterns +## Built-in Patterns | Project | Supported Patterns | | :--- | :--- | @@ -28,7 +28,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | Streams through publish/subscribe. Multiple competing consumer patterns support load balancing. Application code must correlate requests with replies over multiple topics for a service \(request/reply\) pattern. | | **Rabbit** | Streams through publish/subscribe, and services with a direct reply-to feature. Load balancing can be achieved with a Work Queue. Applications must correlate requests with replies over multiple topics for a service \(request/reply\) pattern. | -### Delivery Guarantees +## Delivery Guarantees | Project | Quality of Service / Guarantees | | :--- | :--- | @@ -38,9 +38,9 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | At most once, at least once, and exactly once. | | **Rabbit** | At most once, at least once. | -### Multi-tenancy and Sharing +## Multi-tenancy and Sharing -| Project | Multi-tenancy Support | +| Project | Multi-tenancy Support | | :--- | :--- | | **NATS** | NATS supports true multi-tenancy and decentralized security through accounts and defining shared streams and services. | | **gRPC** | N/A | @@ -48,7 +48,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | Multi-tenancy is implemented through tenants; built-in data sharing across tenants is not supported. Each tenant can have its own authentication and authorization scheme. | | **Rabbit** | Multi-tenancy is supported with vhosts; data sharing is not supported. | -### AuthN +## AuthN | Project | Authentication | | :--- | :--- | @@ -58,7 +58,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | TLS Authentication, Athenz, Kerberos, JSON Web Token Authentication. | | **Rabbit** | TLS, SASL, username and password, and pluggable authorization. | -### AuthZ +## AuthZ | Project | Authorization | | :--- | :--- | @@ -68,7 +68,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | Permissions may be granted to specific roles for lists of operations such as produce and consume. | | **Rabbit** | ACLs dictate permissions for configure, write, and read operations on resources like exchanges, queues, transactions, and others. Authentication is pluggable. | -### Message Retention and Persistence +## Message Retention and Persistence | Project | Message Retention and Persistence Support | | :--- | :--- | @@ -78,7 +78,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | Supports tiered storage including file, Amazon S3 or Google Cloud Storage \(GCS\). Pulsar can replay messages from a specific position and supports durable subscriptions. Pulsar SQL and topic compaction is supported, as well as Pulsar functions. | | **Rabbit** | Supports file-based persistence. Rabbit supported queue-based semantics \(vs log\), so no message replay is available. | -### High Availability and Fault Tolerance +## High Availability and Fault Tolerance | Project | HA and FT Support | | :--- | :--- | @@ -88,7 +88,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | Pulsar supports clustered brokers with geo-replication. | | **Rabbit** | Clustering Support with full data replication via federation plugins. Clusters require low-latency networks where network partitions are rare. | -### Deployment +## Deployment | Project | Supported Deployment Models | | :--- | :--- | @@ -98,7 +98,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | Pulsar supports clustering and built-in geo-replication between clusters. Clients may connect to any cluster with an appropriately configured tenant and namespace. Pulsar requires a JVM and requires at least 6 Linux machines or VMs. 3 running ZooKeeper. 3 running a Pulsar broker and a BookKeeper bookie. [_\(2\)_](compare-nats.md#references)\_\_ | | **Rabbit** | Rabbit supports clusters and cross-cluster message propagation through a federation plugin. Clients are unaware of topology and may connect to any cluster. The server requires the Erlang VM and dependencies. | -### Monitoring +## Monitoring | Project | Monitoring Tooling | | :--- | :--- | @@ -108,7 +108,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | CLI tools, per-topic dashboards, and third-party tools. | | **Rabbit** | CLI tools, a plugin-based management system with dashboards and third-party tools. | -### Management +## Management | Project | Management Tooling | | :--- | :--- | @@ -118,7 +118,7 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | CLI tools, per-topic dashboards, and third-party tools. | | **Rabbit** | CLI tools, a plugin-based management system with dashboards and third-party tools. | -### Integrations +## Integrations | Project | Built-in and Third Party Integrations | | :--- | :--- | @@ -128,9 +128,9 @@ In this comparison, we will be featuring NATS, Apache Kafka, RabbitMQ, Apache Pu | **Pulsar** | Pulsar has many integrations, including ActiveMQ, Cassandra, Debezium, Flume, Elasticsearch, Kafka, Redis, and others. | | **Rabbit** | RabbitMQ has many plugins, including protocols \(MQTT, STOMP\), WebSockets, and various authorization and authentication plugins. | -### References +## References -1. [ https://docs.cloudera.com/HDPDocuments/HDF3/HDF-3.1.0/bk\_planning-your-deployment/content/ch\_hardware-sizing.html\#:~:text=Kafka%20Broker%20Node%3A%20eight%20cores,and%20a%2010%2D%20Gige%20Nic%20.&text=75%20MB%2Fsec%20per%20node,therefore%2010GB%20Nic%20is%20required%20](%20https://docs.cloudera.com/HDPDocuments/HDF3/HDF-3.1.0/bk_planning-your-deployment/content/ch_hardware-sizing.html#:~:text=Kafka%20Broker%20Node%3A%20eight%20cores,and%20a%2010%2D%20Gige%20Nic%20.&text=75%20MB%2Fsec%20per%20node,therefore%2010GB%20Nic%20is%20required%20) +1. [ https://docs.cloudera.com/HDPDocuments/HDF3/HDF-3.1.0/bk\_planning-your-deployment/content/ch\_hardware-sizing.html\#:~:text=Kafka%20Broker%20Node%3A%20eight%20cores,and%20a%2010%2D%20Gige%20Nic%20.&text=75%20MB%2Fsec%20per%20node,therefore%2010GB%20Nic%20is%20required%20](https://github.com/nats-io/nats.docs/tree/2f63683873099948516e99fae28f6bca9f937343/HDPDocuments/HDF3/HDF-3.1.0/bk_planning-your-deployment/content/ch_hardware-sizing.html#:~:text=Kafka%20Broker%20Node%3A%20eight%20cores,and%20a%2010-%20Gige%20Nic%20.&text=75%20MB%2Fsec%20per%20node,therefore%2010GB%20Nic%20is%20required) 2. [https://pulsar.apache.org/docs/v1.21.0-incubating/deployment/cluster/](https://pulsar.apache.org/docs/v1.21.0-incubating/deployment/cluster/) 3. [https://github.com/grpc-ecosystem](https://github.com/grpc-ecosystem) diff --git a/jetstream/resource_management.md b/jetstream/resource_management.md index cf897d2..9e2ffc8 100644 --- a/jetstream/resource_management.md +++ b/jetstream/resource_management.md @@ -1,4 +1,4 @@ -# Multi-Tenancy & Resource Management +# Multi-tenancy & Resource Mgmt JetStream is compatible with NATS 2.0 Multi-Tenancy using Accounts. A JetStream enabled server supports creating fully isolated JetStream environments for different accounts. @@ -61,14 +61,13 @@ If you try to configure JetStream for an account without enabling it globally yo ### `nsc` CLI -If your setup is in operator mode, JetStream specific account configuration can be stored in account JWT. -The earlier account named HR can be configured as follows: +If your setup is in operator mode, JetStream specific account configuration can be stored in account JWT. The earlier account named HR can be configured as follows: ```bash nsc add account --name HR nsc edit account --name HR --js-mem-storage 1G --js-disk-storage 512M --js-streams 10 --js-consumer 100 ``` - + ## `nats` CLI As part of the JetStream efforts a new `nats` CLI has been developed to act as a single point of access to the NATS ecosystem.