消息队列 RabbitMQ 遇上可观测--业务链路可视化
简介: 本篇文章主要介绍阿里云消息队列 RabbitMQ 版的可观测功能。RabbitMQ 的可观测能力相对开源有了全面的加强,为业务链路保驾护航。
作者:文婷、不周
本篇文章主要介绍阿里云消息队列 RabbitMQ 版的可观测功能。RabbitMQ 的可观测能力相对开源有了全面的加强,为业务链路保驾护航。
消息队列 RabbitMQ 简介
阿里云消息队列 RabbitMQ 版是一款基于高可用分布式存储架构实现的 AMQP 0-9-1 协议的消息产品,兼容开源 RabbitMQ 客户端,解决开源各种稳定性痛点(例如消息堆积、脑裂等问题),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。

阿里云消息队列 RabbitMQ 的可观测能力相对开源有了全面的加强,那么什么场景下可以用到可观测能力呢?
为什么需要强大的可观测能力
随着分布式和云原生架构的兴起,系统的可观测性在问题排查、系统运维,甚至业务运营方面起到越来越重要的作用。
场景一:线上消息消费有异常,消息不能及时被处理,需要及时收到报警,并快速定位问题;
场景二:线上某些订单状态有异常,需要排查对应的消息链路环节是否正常发送消息;
场景三:需要分析消息流量变化趋势、流量分布特点或消息体量,进而进行业务趋势分析规划;
场景四:需要查看和分析应用上下游依赖拓扑情况,进行架构升级优化或改造。
消息队列 RabbitMQ 可观测能力
结合上文的内容,下面具体对阿里云消息队列 RabbitMQ 的可观测性的两个核心功能进行介绍。
核心优势
- 可观测 Dashboard 大盘
1、优化性能,具备超强稳定性;
2、一键开箱,降低搭建成本;
3、呈现清晰,问题资源一眼可见。


- 可观测消息轨迹
1、可实现多种问题场景的筛查和搜索能力;
2、支持图形化展示复杂的轨迹信息,使用更加便捷。


可观测 Dashboard 大盘
- 应用场景
使用 Prometheus 监控服务和 Grafana 的指标存储和展示能力,消息队列 RabbitMQ 版为企业版和铂金版实例提供 Dashboard 大盘功能。通过该功能,您可以查看实例、Vhost、Queue 和 Exchange 的各种指标数据,帮助您及时发现和定位问题。

- 功能特点
1、多维度组合查询能力:可以从集群、Vhost、Exchange、Queue 多维度聚合查询数据;
2、排序能力:同一指标下,资源按照健康状况倒序排序,一眼看到集群中最有问题的资源;
3、丰富的指标数据:消息量、连接数、堆积量、关键接口请求数据等。
可观测消息轨迹
- 应用场景
如果消息收发不符合预期,您可以通过查询消息轨迹,快速分析历史消息收发详情和定位问题原因,及时恢复业务。
- 功能介绍
1、查询能力

- 按 Queue 查询:查询一定时间范围内,Queue 上的所有消息的轨迹。适用于只知道消息发送到的 Queue,不知道发送消息时设置的 Message ID 的模糊查询场景。
- 按 Message ID 查询:根据 Message ID 的精确查询指定消息。Message ID 设置为和业务相关的唯一 ID。
- 按消息处理耗时:根据消息处理耗时(消息投递给消费者开始时间到消费者处理完成返回应答的时间)大于指定时间来查询消息轨迹。
2、轨迹内容

- 查看生命周期的各阶段时间:消息到达时间、投递时间、应答时间、进死信时间等;
- 查看消息流转链路信息:消息从生产者到 Exchange 到 Queue 到消费者的链路拓扑信息;
- 查看生产者、消费者信息:IP 地址、账号 ID;
- 查看失败原因:发送失败、消费失败原因、进死信原因等。

点击此处,进入官网了解更多详情~
消息队列 RabbitMQ 遇上可观测--业务链路可视化的更多相关文章
- .NET 开源工作流: Slickflow流程引擎高级开发(七)--消息队列(RabbitMQ)的集成使用
前言:工作流流程过程中,除了正常的人工审批类型的节点外,事件类型的节点处理也尤为重要.比如比较常见的事件类型的节点有:Timer/Message/Signal等.本文重点阐述消息类型的节点处理,以及实 ...
- 消息队列RabbitMQ业务场景应用及解决方案
目录 0. 博客参考 1. 背景 2. 技术选型 3. 消息队列的几个常见问题 4. 代码功能开发及测试 4.1 生产者 4.2 消费者 5. 源代码 6.补充:消息的顺序性 0. 博客参考 http ...
- (二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念
原文:(二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念 没错我还是没有讲怎么安装和写一个HelloWord,不过快了,这一章我们先了解下RabbitMQ的基本概念. Rabbit ...
- ASP.NET Core消息队列RabbitMQ基础入门实战演练
一.课程介绍 人生苦短,我用.NET Core!消息队列RabbitMQ大家相比都不陌生,本次分享课程阿笨将给大家分享一下在一般项目中99%都会用到的消息队列MQ的一个实战业务运用场景.本次分享课程不 ...
- 消息队列rabbitmq/kafka
12.1 rabbitMQ 1. 你了解的消息队列 rabbitmq是一个消息代理,它接收和转发消息,可以理解为是生活的邮局.你可以将邮件放在邮箱里,你可以确定有邮递员会发送邮件给收件人.概括:rab ...
- 消息队列rabbitmq rabbitMQ安装
消息队列rabbitmq 12.1 rabbitMQ 1. 你了解的消息队列 生活里的消息队列,如同邮局的邮箱, 如果没邮箱的话, 邮件必须找到邮件那个人,递给他,才玩完成,那这个任务会处理的很麻 ...
- C#中使用消息队列RabbitMQ
在C#中使用消息队列RabbitMQ 2014-10-27 14:41 by qy1141, 745 阅读, 2 评论, 收藏, 编辑 1.什么是RabbitMQ.详见 http://www.rabb ...
- node使用消息队列RabbitMQ一
基础发布和订阅 消息队列RabbitMQ使用 1 安装RabbitMQ服务器 安装erlang服务 下载地址 http://www.erlang.org/downloads 安装RabbitMQ 下载 ...
- (一)RabbitMQ消息队列-RabbitMQ的优劣势及产生背景
原文:(一)RabbitMQ消息队列-RabbitMQ的优劣势及产生背景 本篇并没有直接讲到技术,例如没有先写个Helloword.我想在选择了解或者学习一门技术之前先要明白为什么要现在这个技术而不是 ...
- nodejs操作消息队列RabbitMQ
一. 什么是消息队列 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已.其主要用途:不同进程Process/ ...
随机推荐
- linux程序运行结果在打印到屏幕的同时写入文件
1.使用script工具 script工具是一个非常使用的工具,可以把输出到终端的信息记录下来.使用方法如: (1)输入 script log.txt命令开始保存终端输出的信息 ,其中log.txt为 ...
- 基于BES2500芯片的方案开发总结和反思
前记 虽然蓝牙芯片现在非常多,可是一旦想做一些差异化的产品时候,能用的非常少.在和客户的反复斟酌中,最终选择了BES2500来开发这款新的产品.这里面是基于自身的实力,产品定位和芯片诉求多重考量的 ...
- day03-分析SpringBoot底层机制
分析SpringBoot底层机制 Tomcat启动分析,Spring容器初始化,Tomcat如何关联Spring容器? 1.创建SpringBoot环境 (1)创建Maven程序,创建SpringBo ...
- atcoder: Moves on Binary Tree
先进行压缩move的次数,再用biginteger. import java.io.BufferedReader; import java.io.IOException; import java.io ...
- 记录--Vue3+TS(uniapp)手撸一个聊天页面
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 Vue3+TS(uniapp)手撸一个聊天页面 前言 最近在自己的小程序中做了一个智能客服,API使用的是云厂商的API,然后聊天页面.. ...
- 记录--微信小程序获取用户信息(附代码、流程图)
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 本篇文章主要总结了微信小程序开发,获取用户信息的整个流程步骤.补充了网上很多碎片化的代码,本人梳理了思路写下了这篇文章. 思路 1.在js ...
- [ROS串口通信]报错:IO Exception (13): Permission denied, file /tmp/binarydeb/ros-noetic-serial-1.2.1/src/impl/unix.cc, line 151. [ERROR] [1705845384.528602780]: Unable to open port
ROS在串口通信时,当我们插入USB后,catkin_make之后,报错: IO Exception (13): Permission denied, file /tmp/binarydeb/ros- ...
- QT 自定义插件问题 error: LNK2001: 无法解析的外部符号
为了重复利用已有的代码,我使用自定义插件进行开发.当每个插件独立开发时没有遇到问题,但是当插件B引用了插件A时就会在编译时报错 error: LNK2001: 无法解析的外部符号. 例如,先定义一个插 ...
- https://codeforces.com/gym/496962
A略. B最大最小即为答案. C略. DE记录 t 的每个字母 在 s 中出现的最左和最右,特判端点. FG先贪心后反悔 or 背包. *H:不会.AC自动机.
- 循环队列(LoopQueue)
循环队列相比普通的队列,元素出队时无需移动大量元素. 代码 ArrayQueue.h 点它 代码清单 #ifndef C___LOOPQUEUE_H #define C___LOOPQUEUE_H # ...