数据中台
接口安全
认证
通讯安全
规则执行
通用组件
通知器
标准化字段校验
定时器
HTTP调用
Rabbit消息发布
脚本可用JAVA库
【必读】上下文
本文档使用 MrDoc 发布
-
+
首页
Rabbit消息发布
## Rabbit消息发布 ### 用途描述 向RabbitMQ发送消息,支持多种数据格式和连接配置。 ### 组件名称 rabbitBasicPublish ### 组件参数 | 参数名 | 参数类型 | 是否必须 | 参数描述 | | --- | --- | --- | --- | | address | String | 是 | RabbitMQ服务器连接地址,支持多种格式:<br>- 简单格式: host:port<br>- 带用户名密码: username:password@host:port<br>- 带虚拟主机: host:port/virtualHost<br>- URL格式: amqp://username:password@host:port/virtualHost<br>- 安全URL格式: amqps://username:password@host:port/virtualHost | | exchange | String | 否 | 交换机名称,可为空表示默认交换机 | | routingKey | String | 是 | 消息的路由键,若exchange为空,表示队列名 | | data | Object | 否 | 需发送的业务数据,未填时将使用SceneContext#result值。根据数据类型自动处理:<br>- 基本类型:以text/plain格式发送<br>- byte[]:以application/octet-stream格式发送<br>- 其他对象:序列化为JSON并以application/json格式发送 | ### 使用示例 #### 绑定静态数据 ``` THEN(a, b, c, rabbitBasicPublish.bind("address", "localhost:5672").bind("exchange", "my-exchange").bind("routingKey", "my-key").bind("data", "{\"message\":\"Hello World\"}")) ``` 需要注意的是这里的data参数如果是JSON字符串必须是==转义==后的格式 #### 绑定动态数据 所谓动态数据就是在编写规则EL的时候无法确定的,bind一个表达式,LiteFlow会根据你bind的表达式去上下文中去搜索所需要的数据。 bind动态数据,value必须为一个表达式,且格式为==${表达式}==。 规则(EL表达式)如下: ``` THEN(a,b,c, rabbitBasicPublish .bind("address","${requestData.get('mqAddress').asText()}") .bind("exchange","${requestData.get('exchange').asText()}") .bind("routingKey","${requestData.get('routingKey').asText()}") .bind("data","${requestData.get('message').asText()}")) ``` 在请求参数中加入相关参数: ```json { "mqAddress": "amqp://guest:guest@localhost:5672/vhost", "exchange": "my-exchange", "routingKey": "my-key", "message": { "id": 123, "content": "测试消息" } } ``` 你也可以使用默认的消息体(当前流程的执行结果): ``` THEN(a, b, c, rabbitBasicPublish.bind("address","amqp://localhost:5672").bind("routingKey","my-key")) ```
admin
2025年8月29日 17:15
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码