The documentation you are viewing is for Dapr v1.6 which is an older version of Dapr. For up-to-date documentation, see the latest version.

RabbitMQ 绑定规范

RabbitMQ 绑定组件详细文档

配置

要设置RabbitMQ绑定需要创建一个bindings.rabbitmq类型的组件: 请参阅本指南,了解如何创建和应用绑定配置。

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: <NAME>
  namespace: <NAMESPACE>
spec:
  type: bindings.rabbitmq
  version: v1
  metadata:
  - name: queueName
    value: queue1
  - name: host
    value: amqp://[username][:password]@host.domain[:port]
  - name: durable
    value: true
  - name: deleteWhenUnused
    value: false
  - name: ttlInSeconds
    value: 60
  - name: prefetchCount
    value: 0
  - name: exclusive
    value: false
  - name: maxPriority
    value: 5
- name: contentType
    value: "text/plain"

元数据字段规范

字段 必填 绑定支持 详情 示例
queueName 输入/输出 RabbitMQ队列名 "myqueue"
host 输入/输出 RabbitMQ主机地址 "amqp://[username][:password]@host.domain[:port]"
durable 输出 告诉 RabbitMQ 将消息持久化到存储中。 默认值为 "false" "true", "false"
deleteWhenUnused 输入/输出 启用或禁用自动删除。 默认值为 "false" "true", "false"
ttlInseconds 输出 RabbitMQ队列级别的消息存活时间。 如果此参数为空,消息将不会过期,继续在队列上存在,直到处理完毕。 另见 60
prefetchCount 输入 设置 通道预取设置 (QoS) 如果此参数为空,QOS 会设置为0为无限制。 0
exclusive 输入/输出 确定主题是否是一个独占主题。 默认值为 "false" "true", "false"
maxPriority 输入/输出 用于设置 优先级队列的参数。 如果此参数为空,消息将不会过期,继续在队列上存在,直到处理完毕。 取值为1到255. 参见 "1", "10"
contentType 输入/输出 消息类型 默认为"text/plain”。 "text/plain", "application/cloudevent+json"等等

绑定支持

此组件支持 输入和输出 绑定接口。

该组件支持如下操作的 输出绑定

  • create

输出绑定支持的操作

可以在队列级别 ( 如上所述) 或消息级别定义生存时间。 在消息级别定义的值会覆盖在队列级别设置的任何值。

若要设置在消息级别生存的时间,请使用 metadata 请求正文中的元数据部分。

字段名为 ttlInSeconds

示例:


curl -X POST http://localhost:3500/v1.0/bindings/myRabbitMQ \
  -H "Content-Type: application/json" \
  -d "{
        \"data\": {
          \"message\": \"Hi\"
        },
        \"metadata\": {
          \"ttlInSeconds\": "60"
        },
        \"operation\": \"create\"
      }"

curl -X POST http://localhost:3500/v1.0/bindings/myRabbitMQ \
  -H "Content-Type: application/json" \
  -d '{
        "data": {
          "message": "Hi"
        },
        "metadata": {
          "ttlInSeconds": "60"
        },
        "operation": "create"
      }'

指定每条消息的优先级

可以在消息级别制定优先级。 如果设置了maxPriority 参数,那么高优先级消息将优先于其他低优先级消息。

在绑定调用过程之,使用请求正文中的元数据设置消息的优先级。

字段名字是priority

示例:


curl -X POST http://localhost:3500/v1.0/bindings/myRabbitMQ \
  -H "Content-Type: application/json" \
  -d "{
        \"data\": {
          \"message\": \"Hi\"
        },
        \"metadata\": {
          "priority": \"5\"
        },
        \"operation\": \"create\"
      }"

curl -X POST http://localhost:3500/v1.0/bindings/myRabbitMQ \
  -H "Content-Type: application/json" \
  -d '{
        "data": {
          "message": "Hi"
        },
        "metadata": {
          "priority": "5"
        },
        "operation": "create"
      }'

相关链接