RabbitMQ

RabbitMQ pubsub组件的详细文档

配置

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: rabbitmq-pubsub
  5. namespace: default
  6. spec:
  7. type: pubsub.rabbitmq
  8. version: v1
  9. metadata:
  10. - name: host
  11. value: "amqp://localhost:5672"
  12. - name: durable
  13. value: "false"
  14. - name: deletedWhenUnused
  15. value: "false"
  16. - name: autoAck
  17. value: "false"
  18. - name: deliveryMode
  19. value: "0"
  20. - name: requeueInFailure
  21. value: "false"
  22. - name: prefetchCount
  23. value: "0"
  24. - name: reconnectWait
  25. value: "0"
  26. - name: concurrencyMode
  27. value: parallel

Warning

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

元数据字段规范

字段必填详情示例
hostYRabbitmq 的连接地址amqp://user:pass@localhost:5672
durableN是否使用durable队列, 默认值为 “false” 默认值为 “false”“true”, “false”
deletedWhenUnusedN是否将队列配置为auto-delete 默认为“false”“true”, “false”
autoAckN队列的消费者是否应该auto-ack消息 默认值为 “false” 默认值为 “false”“true”, “false”
deliveryModeN发布消息时的持久化模式, 默认值为 “0”. 值为“2”时RabbitMQ会进行持久化,其他值反之“0”, “2”
requeueInFailureN在发送否定应答失败的情况下,是否进行重排, 默认值为 “false” 默认值为 “false”“true”, “false”
prefetchCountNprefecth的消息数量, 生产环境中需要考虑设置一个非零值。 生产环境中需要考虑设置一个非零值。 该值默认为“0”,这意味着所有可用消息都将被预先提取“2”
reconnectWaitN如果发生连接失败,在重新连接之前需要等待多长时间(秒)“0”
concurrencyModeN默认值是parallel,表示允许并行处理多个消息(如果配置了app-max-concurrency,最大并行数会受到该值限制), 设置为single可禁用并行处理, 大多数情况下没必要去这么做 设置为single可禁用并行处理, 大多数情况下没必要去这么做parallel, single

创建RabbitMQ服务

你可以使用Docker在本地运行RabbitMQ :

  1. docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3

然后你可以通过localhost:5672与服务器交互。

在 Kubernetes 上安装 RabbitMQ 最简单的方法是使用 Helm chart

  1. helm install rabbitmq stable/rabbitmq

根据Helm图表的输出,得到用户名和密码。

这会把 RabbitMQ 安装到 default 命名空间中, 这会把 RabbitMQ 安装到 default 命名空间中, 要与RabbitMQ进行交互,请使用以下方法找到服务:kubectl get svc rabbitmq

如果使用上面的示例进行安装,RabbitMQ服务器的客户端地址是:

rabbitmq.default.svc.cluster.local:5672

相关链接