RabbitMQ 绑定规范

Detailed documentation on the RabbitMQ binding component

Component format

To setup RabbitMQ binding create a component of type bindings.rabbitmq. See this guide on how to create and apply a binding configuration.

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: <NAME>
  5. namespace: <NAMESPACE>
  6. spec:
  7. type: bindings.rabbitmq
  8. version: v1
  9. metadata:
  10. - name: queueName
  11. value: queue1
  12. - name: host
  13. value: amqp://[username][:password]@host.domain[:port]
  14. - name: durable
  15. value: true
  16. - name: deleteWhenUnused
  17. value: false
  18. - name: ttlInSeconds
  19. value: 60
  20. - name: prefetchCount
  21. value: 0
  22. - name: exclusive
  23. value: false
  24. - name: maxPriority
  25. value: 5

Warning

以上示例将 Secret 明文存储。 更推荐的方式是使用 Secret 组件, here

Spec metadata fields

字段RequiredBinding supportDetailsExample
queueNameYInput/OutputThe RabbitMQ queue name“myqueue”
hostYInput/OutputThe RabbitMQ host address“amqp://[username][:password]@host.domain[:port]”
durableNOutputTells RabbitMQ to persist message in storage. Defaults to “false”“true”, “false”
deleteWhenUnusedNInput/OutputEnables or disables auto-delete. Defaults to “false”“true”, “false”
ttlInSecondsNOutputSet the default message time to live at RabbitMQ queue level. 如果此参数为空,消息将不会过期,继续在队列上存在,直到处理完毕。 See also60
prefetchCountNInputSet the Channel Prefetch Setting (QoS). 如果此参数为空,QOS 会设置为0为无限制。0
exclusiveNInput/OutputDetermines whether the topic will be an exclusive topic or not. Defaults to “false”“true”, “false”
maxPriorityNInput/OutputParameter to set the priority queue. If this parameter is omitted, queue will be created as a general queue instead of a priority queue. Value between 1 and 255. See also“1”, “10”

Output bindings

This component supports both input and output binding interfaces.

字段名为 ttlInSeconds

  • create

输出绑定支持的操作

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

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

字段名为 ttlInSeconds

示例:

  1. curl -X POST http://localhost:3500/v1.0/bindings/myRabbitMQ \
  2. -H "Content-Type: application/json" \
  3. -d "{
  4. \"data\": {
  5. \"message\": \"Hi\"
  6. },
  7. \"metadata\": {
  8. \"ttlInSeconds\": "60"
  9. },
  10. \"operation\": \"create\"
  11. }"
  1. curl -X POST http://localhost:3500/v1.0/bindings/myRabbitMQ \
  2. -H "Content-Type: application/json" \
  3. -d '{
  4. "data": {
  5. "message": "Hi"
  6. },
  7. "metadata": {
  8. "ttlInSeconds": "60"
  9. },
  10. "operation": "create"
  11. }'

相关链接

Priority can be defined at the message level. If maxPriority parameter is set, high priority messages will have priority over other low priority messages.

To set priority at message level use the metadata section in the request body during the binding invocation.

The field name is priority.

示例:

  1. curl -X POST http://localhost:3500/v1.0/bindings/myRabbitMQ \
  2. -H "Content-Type: application/json" \
  3. -d "{
  4. \"data\": {
  5. \"message\": \"Hi\"
  6. },
  7. \"metadata\": {
  8. "priority": \"5\"
  9. },
  10. \"operation\": \"create\"
  11. }"
  1. curl -X POST http://localhost:3500/v1.0/bindings/myRabbitMQ \
  2. -H "Content-Type: application/json" \
  3. -d '{
  4. "data": {
  5. "message": "Hi"
  6. },
  7. "metadata": {
  8. "priority": "5"
  9. },
  10. "operation": "create"
  11. }'

相关链接

Last modified January 1, 0001