作者:文婷、不周
本篇文章主要介绍阿里云消息队列 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;
- 查看失败原因:发送失败、消费失败原因、进死信原因等。