Appearance
消息队列
配置说明
参数 | 描述 |
---|---|
标识符 | 消息队列的标识符 |
名称 | 消息队列的名称 |
路由键 | 消息队列的路由键 |
备注 | 备注 |
持久化类型 | 持久化保存 不持久化保存 |
消息存活时间 | 默认为10000,单位为ms |
队列长度 | 默认为10000 |
消费模式 | 从消息队列中拉取消息 消息队列主动推送 |
确认模式 | 无异常确认 总是自动确认 手动确认 |
消费者调用类型 | 选择调用自动化程序 或者脚本 |
pull模式
当消息队列的消费模式设置为从消息队列中拉取消息
(即pull模式),队列中的消息需要主动拉取消费。
使用场景
- 流量控制:消费者根据自身处理能力拉取消息,防止消息堆积导致系统崩溃。
- 批量处理:一次性获取多个消息进行批量处理,提高效率。
- 负载均衡:处理能力强的消费者拉取更多消息,实现负载均衡。
- 高优先级任务:根据优先级选择性拉取消息,优先处理高优先级任务。
- 动态调整:消费者根据当前负载和处理能力动态调整拉取频率和数量。
- 资源受限环境:在资源有限的情况下,仅在资源允许时拉取消息,避免过度使用。
- 延迟敏感:处理完一批消息后立即拉取下一批,减少延迟。
实现流程
- 通过informat.mq.publish将消息推送到对应的消息队列
- 在自动化程序的代码片段或者脚本中通过informat.mq.basicGet主动拉取消费,如果设置为非自动确认则要执行步骤3
- 手动确认消息informat.mq.basicAck
示例
push模式
当消息队列的消费模式设置为消息队列主动推送
(即push模式)。主动将队列中的消息推送到配置中的自动化程序
或者脚本
使用场景
- 实时性要求高:需要消息尽快被消费,例如实时通知、报警系统。
- 低延迟:希望消息在生产后立即被处理,减少消息在队列中的等待时间。
- 高并发消费:有多个消费者并发处理消息,可以快速响应和处理大量请求。
- 事件驱动系统:系统各组件之间通过事件进行通信,消息需要立即触发相应的处理逻辑。
- 负载均衡:RabbitMQ 会自动将消息分发给多个消费者,实现负载均衡。
实现流程
- 首先配置好消息队列及对应的消费者(自动化或者脚本)
- 其他脚本通过informat.mq.publish将消息推送到对应的消息队列
- 消息队列将消息主动推送给消费者,入参:MqMessage。如果确认模式设置为手动确认则要执行步骤4
- 手动确认消息informat.mq.basicAck
示例
如果不小心在消息队列后台删除了一个队列,怎么处理?
- 可以在织信消息队列模块的配置界面,找到对应的消息队列,编辑后重新发布,平台会自动创建消息队列。