rabbitmq客户端
x/rabbitmqClient组件:v0.24.0+ RabbitMQ客户端组件。用于将消息发布到RabbitMQ消息服务器的指定交换机和路由键。
# 配置
该组件支持通过server字段复用共享的连接客户端,避免重复创建连接。详见组件连接复用。
| 字段 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| server | string | 是 | RabbitMQ服务器地址,格式为amqp://username:password@host:port/ | 无 |
| exchange | string | 是 | 交换机名称 | 无 |
| exchangeType | string | 是 | 交换机类型,可选值:direct(直连)、fanout(扇出)、topic(主题)、headers(头) | 无 |
| key | string | 是 | 路由键,支持使用组件配置变量进行动态配置 | 无 |
| durable | bool | 否 | 交换机持久化标志。true表示交换机会在服务器重启后保留 | false |
| autoDelete | bool | 否 | 自动删除标志。true表示当所有队列都不再使用该交换机时,会自动删除交换机 | false |
# 工作原理
- 组件初始化时会根据配置连接到RabbitMQ服务器
- 接收到消息后,将消息内容发布到指定的exchange和routing key
- 发布成功后通过Success链路由,失败则通过Failure链路由
- 组件会自动管理连接的生命周期,包括重连、心跳等
# Relation Type
- Success: 消息成功发布到RabbitMQ服务器时,原始消息发送到
Success链路 - Failure: 以下情况消息发送到
Failure链路:- 连接RabbitMQ服务器失败
- 交换机声明失败
- 消息发布失败
- 配置参数错误
# 执行结果
组件仅负责消息发布,不会修改原始消息的任何内容:
- msg保持不变
- metadata保持不变
- msgType保持不变
# 配置示例
{
"ruleChain": {
"id": "rabbitmq_producer_chain",
"name": "发布消息到RabbitMQ",
"root": true
},
"metadata": {
"nodes": [
{
"id": "s1",
"type": "jsTransform",
"name": "构造消息",
"configuration": {
"jsScript": "return {'msg':msg,'metadata':metadata,'msgType':msgType};"
}
},
{
"id": "s2",
"type": "x/rabbitmqClient",
"name": "发布到RabbitMQ",
"configuration": {
"server": "amqp://guest:guest@127.0.0.1:5672/",
"exchange": "rulego.events",
"exchangeType": "topic",
"key": "${deviceType}",
"durable": true,
"autoDelete": false
}
}
],
"connections": [
{
"fromId": "s1",
"toId": "s2",
"type": "Success"
}
]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
路由键 key 支持组件配置变量:示例中的 ${deviceType} 会被替换成消息元数据里的 deviceType 值,实现按业务字段路由到不同队列。
在 GitHub 上编辑此页 (opens new window)
上次更新: 2026/09/12, 16:59:03