From a732ff2fc097c48f99c31d81c6d54f5bb0a9d6e8 Mon Sep 17 00:00:00 2001 From: Hannah Hunter Date: Tue, 27 Jun 2023 15:58:48 -0400 Subject: [PATCH 1/2] remove consumerid and add example Signed-off-by: Hannah Hunter --- .../supported-pubsub/setup-jetstream.md | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-jetstream.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-jetstream.md index 6338b3a0cff..51e61b56f66 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-jetstream.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-jetstream.md @@ -31,8 +31,6 @@ spec: value: "/path/to/tls.key" - name: token # Optional. Used for token based authentication. value: "my-token" - - name: consumerID - value: "channel1" - name: name value: "my-conn-name" - name: streamName @@ -83,7 +81,6 @@ spec: | tls_client_cert | N | NATS TLS Client Authentication Certificate | `"/path/to/tls.crt"` | | tls_client_key | N | NATS TLS Client Authentication Key | `"/path/to/tls.key"` | | token | N | [NATS token based authentication] | `"my-token"` | -| consumerID | N | Consumer ID (consumer tag) organizes one or more consumers into a group. Consumers with the same consumer ID work as one virtual consumer; for example, a message is processed only once by one of the consumers in the group. If the `consumerID` is not provided, the Dapr runtime set it to the Dapr application ID (`appID`) value. | `"channel1"` | name | N | NATS connection name | `"my-conn-name"` | | streamName | N | Name of the JetStream Stream to bind to | `"my-stream"` | | durableName | N | [Durable name] | `"my-durable"` | @@ -146,6 +143,31 @@ It is essential to create a NATS JetStream for a specific subject. For example, nats -s localhost:4222 stream add myStream --subjects mySubject ``` +## Example: Competing consumers pattern + +Let's say you'd like each message to be processed by only one application or pod with the same app-id. Typically, the `consumerID` metadata spec helps you define competing consumers. However, `consumerID` is not supported in NATS JetStream. + +The following example demonstrates using a competing consumer pattern with dynamic values. + +```yml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: pubsub +spec: + type: pubsub.jetstream + version: v1 + metadata: + - name: name + value: "my-conn-name" + - name: streamName + value: "my-stream" + - name: durableName + value: "my-durable" + - name: queueGroupName + value: "my-queue" +``` + ## Related links - [Basic schema for a Dapr component]({{< ref component-schema >}}) - Read [this guide]({{< ref "howto-publish-subscribe.md#step-2-publish-a-topic" >}}) for instructions on configuring pub/sub components From 9068813b09b6eee8e5ffa1ab59ab54da9eebf39c Mon Sep 17 00:00:00 2001 From: Hannah Hunter Date: Wed, 5 Jul 2023 12:21:19 -0400 Subject: [PATCH 2/2] updates from @jarema Signed-off-by: Hannah Hunter --- .../supported-pubsub/setup-jetstream.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-jetstream.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-jetstream.md index 51e61b56f66..cfb88b1b032 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-jetstream.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-jetstream.md @@ -36,9 +36,9 @@ spec: - name: streamName value: "my-stream" - name: durableName - value: "my-durable" + value: "my-durable-subscription" - name: queueGroupName - value: "my-queue" + value: "my-queue-group" - name: startSequence value: 1 - name: startTime # In Unix format @@ -145,9 +145,9 @@ nats -s localhost:4222 stream add myStream --subjects mySubject ## Example: Competing consumers pattern -Let's say you'd like each message to be processed by only one application or pod with the same app-id. Typically, the `consumerID` metadata spec helps you define competing consumers. However, `consumerID` is not supported in NATS JetStream. +Let's say you'd like each message to be processed by only one application or pod with the same app-id. Typically, the `consumerID` metadata spec helps you define competing consumers. -The following example demonstrates using a competing consumer pattern with dynamic values. +Since `consumerID` is not supported in NATS JetStream, you need to specify `durableName` and `queueGroupName` to achieve the competing consumers pattern. For example: ```yml apiVersion: dapr.io/v1alpha1 @@ -163,9 +163,9 @@ spec: - name: streamName value: "my-stream" - name: durableName - value: "my-durable" + value: "my-durable-subscription" - name: queueGroupName - value: "my-queue" + value: "my-queue-group" ``` ## Related links