mirror of https://github.com/dapr/docs.git
[1.16] Adds RocketMQ binding (#4835)
Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Mark Fussell <markfussell@gmail.com>
This commit is contained in:
parent
a6527c4ad2
commit
83b5e09271
|
@ -0,0 +1,125 @@
|
||||||
|
---
|
||||||
|
type: docs
|
||||||
|
title: "Apache RocketMQ binding spec"
|
||||||
|
linkTitle: "RocketMQ"
|
||||||
|
description: "Detailed documentation on the Apache RocketMQ binding component"
|
||||||
|
aliases:
|
||||||
|
- "/operations/components/setup-bindings/supported-bindings/rocketmq/"
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## Component format
|
||||||
|
|
||||||
|
To set up an Apache RocketMQ binding, create a component of type `bindings.rocketmq`.
|
||||||
|
See [this guide]({{% ref "howto-bindings.md#1-create-a-binding" %}}) on how to create and apply a binding configuration.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: dapr.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: <NAME>
|
||||||
|
spec:
|
||||||
|
type: bindings.rocketmq
|
||||||
|
version: v1
|
||||||
|
metadata:
|
||||||
|
- name: accessProto
|
||||||
|
value: "tcp"
|
||||||
|
- name: nameServer
|
||||||
|
value: "localhost:9876"
|
||||||
|
- name: endpoint
|
||||||
|
value: "http://localhost:8080"
|
||||||
|
- name: topics
|
||||||
|
value: "topic1,topic2"
|
||||||
|
- name: consumerGroup
|
||||||
|
value: "my-consumer-group"
|
||||||
|
# Optional
|
||||||
|
- name: consumerBatchSize
|
||||||
|
value: "10"
|
||||||
|
- name: consumerThreadNums
|
||||||
|
value: "4"
|
||||||
|
- name: retries
|
||||||
|
value: "3"
|
||||||
|
- name: instanceId
|
||||||
|
value: "my-instance"
|
||||||
|
````
|
||||||
|
|
||||||
|
{{% alert title="Warning" color="warning" %}}
|
||||||
|
The above example uses secrets as plain strings.
|
||||||
|
It is recommended to use a secret store for the secrets as described [here]({{% ref component-secrets.md %}}).
|
||||||
|
{{% /alert %}}
|
||||||
|
|
||||||
|
## Spec metadata fields
|
||||||
|
|
||||||
|
| Field | Required | Binding support | Details | Example |
|
||||||
|
| -------------------- | :------: | --------------- | --------------------------------------------------------------------- | ------------------------------ |
|
||||||
|
| `topics` | Y | Input/Output | Comma-separated list of topics for publishing or subscribing. | `"topic1,topic2"` |
|
||||||
|
| `nameServer` | N | Input/Output | Address of the RocketMQ name server. | `"localhost:9876"` |
|
||||||
|
| `endpoint` | N | Input/Output | RocketMQ endpoint (for `http` protocol). | `"http://localhost:8080"` |
|
||||||
|
| `accessProto` | N | Input/Output | SDK protocol for connecting to RocketMQ. | `"tcp"`, `"tcp-cgo"`, `"http"` |
|
||||||
|
| `consumerGroup` | N | Input/Output | Consumer group name for RocketMQ subscribers. | `"my-consumer-group"` |
|
||||||
|
| `consumerBatchSize` | N | Input | Batch size for consuming messages. | `"10"` |
|
||||||
|
| `consumerThreadNums` | N | Input | Number of consumer threads (for `tcp-cgo` protocol). | `"4"` |
|
||||||
|
| `instanceId` | N | Input/Output | RocketMQ namespace instance ID. | `"my-instance"` |
|
||||||
|
| `nameServerDomain` | N | Input/Output | Domain name for the RocketMQ name server. | `"rocketmq.example.com"` |
|
||||||
|
| `retries` | N | Input/Output | Number of retry attempts to connect to the RocketMQ broker. | `"3"` |
|
||||||
|
| `accessKey` | N | Input/Output | Access key for authentication. Required if access control is enabled. | `"access-key"` |
|
||||||
|
| `secretKey` | N | Input/Output | Secret key for authentication. Required if access control is enabled. | `"secret-key"` |
|
||||||
|
|
||||||
|
> **Note**: `accessKey` and `secretKey` can be stored in a Dapr secret store instead of the YAML file for improved security.
|
||||||
|
|
||||||
|
### Authentication Using Access Keys
|
||||||
|
|
||||||
|
To use access key authentication, include the following metadata fields in the configuration:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: accessKey
|
||||||
|
secretKeyRef:
|
||||||
|
name: rocketmq-secrets
|
||||||
|
key: accessKey
|
||||||
|
- name: secretKey
|
||||||
|
secretKeyRef:
|
||||||
|
name: rocketmq-secrets
|
||||||
|
key: secretKey
|
||||||
|
```
|
||||||
|
|
||||||
|
This allows secure retrieval of credentials from a secret store.
|
||||||
|
|
||||||
|
## Binding support
|
||||||
|
|
||||||
|
This component supports both **input and output** binding interfaces.
|
||||||
|
|
||||||
|
This component supports **output binding** with the following operations:
|
||||||
|
|
||||||
|
* `create`: publishes a new message
|
||||||
|
* `read`: consumes messages from RocketMQ topics
|
||||||
|
|
||||||
|
## Set topic per-request
|
||||||
|
|
||||||
|
You can override the topic in component metadata on a per-request basis:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"operation": "create",
|
||||||
|
"metadata": {
|
||||||
|
"topics": "dynamicTopic"
|
||||||
|
},
|
||||||
|
"data": "This is a test message for RocketMQ!"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Retry behavior
|
||||||
|
|
||||||
|
Use the `retries` metadata field to specify how many times Dapr should attempt to connect to RocketMQ before failing:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: retries
|
||||||
|
value: "5"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Related links
|
||||||
|
|
||||||
|
- [Basic schema for a Dapr component]({{% ref component-schema %}})
|
||||||
|
- [Bindings building block]({{% ref bindings %}})
|
||||||
|
- [How-To: Trigger application with input binding]({{% ref howto-triggers.md %}})
|
||||||
|
- [How-To: Use bindings to interface with external resources]({{% ref howto-bindings.md %}})
|
||||||
|
- [Bindings API reference]({{% ref bindings_api.md %}})
|
|
@ -190,3 +190,11 @@
|
||||||
features:
|
features:
|
||||||
input: false
|
input: false
|
||||||
output: true
|
output: true
|
||||||
|
- component: RocketMQ
|
||||||
|
link: rocketmq
|
||||||
|
state: Alpha
|
||||||
|
version: v1
|
||||||
|
since: "1.2"
|
||||||
|
features:
|
||||||
|
input: true
|
||||||
|
output: true
|
||||||
|
|
Loading…
Reference in New Issue