Apache RocketMQ binding 规范

Apache RocketMQ binding 组件的详细文档

组件格式

要设置 Apache RocketMQ binding,请创建一个类型为 bindings.rocketmq 的组件。
有关如何创建和应用 binding 配置,请参阅此指南

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"
    # 可选
    - name: consumerBatchSize
      value: "10"
    - name: consumerThreadNums
      value: "4"
    - name: retries
      value: "3"
    - name: instanceId
      value: "my-instance"

规范元数据字段

字段必填Binding 支持详情示例
topicsYInput/Output用于发布或订阅的以逗号分隔的主题列表。"topic1,topic2"
nameServerNInput/OutputRocketMQ name server 地址。"localhost:9876"
endpointNInput/OutputRocketMQ 端点(用于 http 协议)。"http://localhost:8080"
accessProtoNInput/Output用于连接 RocketMQ 的 SDK 协议。"tcp", "tcp-cgo", "http"
consumerGroupNInput/OutputRocketMQ 订阅者的消费者组名称。"my-consumer-group"
consumerBatchSizeNInput消费消息的批次大小。"10"
consumerThreadNumsNInput消费者线程数量(用于 tcp-cgo 协议)。"4"
instanceIdNInput/OutputRocketMQ 命名空间实例 ID。"my-instance"
nameServerDomainNInput/OutputRocketMQ name server 的域名。"rocketmq.example.com"
retriesNInput/Output连接到 RocketMQ broker 的重试次数。"3"
accessKeyNInput/Output用于身份验证的访问密钥。如果启用了访问控制,则为必填项。"access-key"
secretKeyNInput/Output用于身份验证的密钥。如果启用了访问控制,则为必填项。"secret-key"

注意accessKeysecretKey 可以存储在 Dapr secret store 中,而不是存储在 YAML 文件中,以提高安全性。

使用访问密钥进行身份验证

要使用访问密钥身份验证,请在配置中包含以下元数据字段:

- name: accessKey
  secretKeyRef:
    name: rocketmq-secrets
    key: accessKey
- name: secretKey
  secretKeyRef:
    name: rocketmq-secrets
    key: secretKey

这允许从 secret store 安全地获取凭据。

Binding 支持

此组件同时支持输入和输出 binding 接口。

此组件支持以下操作的输出 binding

  • create:发布新消息
  • read:从 RocketMQ 主题消费消息

按请求设置主题

您可以按请求覆盖组件元数据中的主题:

{
  "operation": "create",
  "metadata": {
    "topics": "dynamicTopic"
  },
  "data": "This is a test message for RocketMQ!"
}

重试行为

使用 retries 元数据字段指定 Dapr 在失败前应尝试连接 RocketMQ 的次数:

- name: retries
  value: "5"

相关链接