RabbitMq消息轨迹查询设计

消息轨迹查询的必要性

消息系统作为互联网行业削峰填谷的利器,是后端应用系统来进行异步解耦的重要工具;
而消息系统产生的消息也是应用系统数据流正确扭转的重要支撑。
为了保证消息轨迹(从那个地方产生,流向了那个地方)可查询,并且提供追本溯源的功能,是保证消息系统高可靠的一部分

消息轨迹查询的目标

规范化Rabbit的Exchange、RouteKey、Queue的使用
消息轨迹的查询及消息丢失后可进行消息回朔
对内部的消息进行分析及统计,能够预估Rabbit的容量规划及其他分析作用
增加消息剔重的操作,防止在网络抖动情况下,消息重复投递

架构方案
image.png
开发工作
  • sdk的开发(针对spring-rabbit)
    1)消息生成MessageId;Id格式暂定为: ProducerIP+日期时间戳
    1. 消息异步序列化到DB中,需要批量及异步,不能对业务放使用产生延迟
      3)将exchange、queue、两者申请api去除掉,需要去console中去申请
      4)消息剔重,防止在网络抖动情况下,消息会进行重复投递
  • Webconsole的开发
    1) Exchange的CURD操作
    2) Queue的CURD操作
    3) 消息轨迹的查询,提供查询方式有 Exchange、RouteKey、机器IP、消息发送时间、消息ID五种查询方式
    4) 消息补偿,提供在Console页面上重新入队的功能(此功能将不能保证消息的顺序)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容