RabbitMQ Source 集成
本文介绍如何在管道的 Source 步骤中使用 RabbitMQ 作为数据来源。
适用场景
- 接入已有 AMQP 生产链路数据
- 从交换机/队列读取事件并汇入 FlowMQ
前提条件
配置步骤
- 在“数据管道”中创建管道,完成基础信息配置。
- 在 Source 步骤选择
RabbitMQ。 - 配置
urls、queue、consumer_tag等参数。 - 点击“测试”验证连接。
- 继续完成 Processors、Sink 与确认步骤。
配置示例
可参考以下参数示例:
| 参数 | 建议值 |
|---|---|
| host | 127.0.0.1 |
| port | 5672 |
| username | guest |
| password | guest |
| vhost | / |
| queue | flowmq.source.rabbitmq |
| consumer_tag | flowmq-source-1 |
| queue_declare.enabled | true |
| queue_declare.durable | false |
| auto_ack | true |
| tls.enabled | false |
必要表单参数
以表单中带 * 的字段为必填:
| 参数 | 说明 |
|---|---|
urls* | 连接地址列表(每项包含 host/port,可含用户名、密码、vhost) |
queue* | 要消费的 AMQP 队列名 |
consumer_tag* | 消费者标识。用于在 RabbitMQ 侧区分本管道的消费连接;控制台要求必填,建议填可读且唯一的名称(如 flowmq-source-1) |
auto_ack* | 是否在消费时自动确认。开启可提高吞吐,但会削弱投递保证 |
prefetch_count* | 未确认消息的最大条数 |
prefetch_size* | 未确认消息的最大字节数(0 表示不按字节限制) |
可选高级项:
| 参数 | 说明 |
|---|---|
tls | 自定义 TLS |
queue_declare | 被动声明目标队列 |
bindings_declare | 被动声明队列绑定 |
参数建议
- 优先使用独立消费队列避免互相干扰
consumer_tag同一连接上不要与其他消费者重复- 按业务类型规划 routing key
注意事项
- 明确 ack 策略,避免消息堆积
- 关注重试与死信策略
- 接入后的字段清洗与映射见 Processors
- 控制台
urls按 host/port 对象填写(可含 username、password、vhost);Bento 按该对象格式解析,不要改成amqp://...字符串 - 使用 FlowMQ 内置 AMQP(
--class=amqp)时,建议开启queue_declare.enabled,并将queue_declare.durable设为false(内置服务不支持 durable queue) - 队列名不要与已有 Kafka Topic / FlowMQ 流同名(例如不要用
flowmq.mqtt.kafka),否则queue_declare可能返回 406 - 非 TLS 场景下请将
tls.enabled保持为false;若误开 TLS,连通性测试可能仍通过,但管道任务无法正常运行 - Sink 为 Drop 的 Source 测试场景,建议开启
auto_ack,便于观察处理计数