The documentation you are viewing is for Dapr v1.9 which is an older version of Dapr. For up-to-date documentation, see the latest version.
JetStream
Component format
To setup JetStream pubsub create a component of type pubsub.jetstream
. See
this guide on how to
create and apply a pubsub configuration.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: jetstream-pubsub
spec:
type: pubsub.jetstream
version: v1
metadata:
- name: natsURL
value: "nats://localhost:4222"
- name: jwt # Optional. Used for decentralized JWT authentication.
value: "eyJhbGciOiJ...6yJV_adQssw5c"
- name: seedKey # Optional. Used for decentralized JWT authentication.
value: "SUACS34K232O...5Z3POU7BNIL4Y"
- name: tls_client_cert # Optional. Used for TLS Client authentication.
value: "/path/to/tls.crt"
- name: tls_client_key # Optional. Used for TLS Client authentication.
value: "/path/to/tls.key"
- name: name
value: "my-conn-name"
- name: durableName
value: "my-durable"
- name: queueGroupName
value: "my-queue"
- name: startSequence
value: 1
- name: startTime # In Unix format
value: 1630349391
- name: deliverAll
value: false
- name: flowControl
value: false
Spec metadata fields
Field | Required | Details | Example |
---|---|---|---|
natsURL | Y | NATS server address URL | "nats://localhost:4222" |
jwt | N | NATS decentralized authentication JWT | "eyJhbGciOiJ...6yJV_adQssw5c" |
seedKey | N | NATS decentralized authentication seed key | "SUACS34K232O...5Z3POU7BNIL4Y" |
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" |
name | N | NATS connection name | "my-conn-name" |
durableName | N | Durable name | "my-durable" |
queueGroupName | N | Queue group name | "my-queue" |
startSequence | N | Start Sequence | 1 |
startTime | N | Start Time in Unix format | 1630349391 |
deliverAll | N | Set deliver all as Replay Policy | true |
flowControl | N | Flow Control | true |
Create a NATS server
You can run a NATS Server with JetStream enabled locally using Docker:
docker run -d -p 4222:4222 nats:latest -js
You can then interact with the server using the client port: localhost:4222
.
Install NATS JetStream on Kubernetes by using the helm:
helm repo add nats https://nats-io.github.io/k8s/helm/charts/
helm install --set nats.jetstream.enabled=true my-nats nats/nats
This installs a single NATS server into the default
namespace. To interact with NATS, find the service with:
kubectl get svc my-nats
For more information on helm chart settings, see the Helm chart documentation.
Create JetStream
It is essential to create a NATS JetStream for a specific subject. For example, for a NATS server running locally use:
nats -s localhost:4222 stream add myStream --subjects mySubject
Related links
- Basic schema for a Dapr component
- Read this guide for instructions on configuring pub/sub components
- Pub/Sub building block
- JetStream Documentation
- NATS CLI
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.