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 |
---|---|---|---|
host | Y | Rabbitmq 的连接地址 | amqp://user:pass@localhost:5672 |
durable | N | 是否使用durable队列, 默认值为 "false" 默认值为 "false" | "true" , "false" |
deletedWhenUnused | N | Whether or not the queue sohuld be configured to auto-delete Defaults to "true" | "true" , "false" |
autoAck | N | 队列的消费者是否应该auto-ack消息 默认值为 "false" 默认值为 "false" | "true" , "false" |
deliveryMode | N | 发布消息时的持久化模式, 默认值为 "0" . 值为"2" 时RabbitMQ会进行持久化,其他值反之 | "0" , "2" |
requeueInFailure | N | 在发送否定应答失败的情况下,是否进行重排, 默认值为 "false" 默认值为 "false" | "true" , "false" |
prefetchCount | N | prefecth的消息数量, 生产环境中需要考虑设置一个非零值。 生产环境中需要考虑设置一个非零值。 该值默认为"0" ,这意味着所有可用消息都将被预先提取 | "2" |
reconnectWait | N | 如果发生连接失败,在重新连接之前需要等待多长时间(秒) | "0" |
concurrencyMode | N | 默认值是parallel ,表示允许并行处理多个消息(如果配置了app-max-concurrency ,最大并行数会受到该值限制), 设置为single 可禁用并行处理, 大多数情况下没必要去这么做 设置为single 可禁用并行处理, 大多数情况下没必要去这么做 | parallel , single |
你可以使用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