RabbitMQ

RabbitMQ pubsub组件的详细文档

配置

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: rabbitmq-pubsub
  namespace: default
spec:
  type: pubsub.rabbitmq
  version: v1
  metadata:
  - name: host
    value: "amqp://localhost:5672"
  - name: durable
    value: "false"
  - name: deletedWhenUnused
    value: "false"
  - name: autoAck
    value: "false"
  - name: deliveryMode
    value: "0"
  - name: requeueInFailure
    value: "false"
  - name: prefetchCount
    value: "0"
  - name: reconnectWait
    value: "0"
  - name: concurrencyMode
    value: parallel

元数据字段规范

字段必填详情Example
hostYRabbitmq 的连接地址amqp://user:pass@localhost:5672
durableN是否使用durable队列, 默认值为 "false" 默认值为 "false""true", "false"
deletedWhenUnusedNWhether or not the queue sohuld be configured to auto-delete Defaults to "true""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 :

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

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


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

helm install rabbitmq stable/rabbitmq

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

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

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

rabbitmq.default.svc.cluster.local:5672

相关链接