RabbitMQ 默认日志里只有类似客户端“accpet/close”等信息,对于有异常或者跟踪消息内部结构就比较麻烦了。
不过MQ有个rabbitmq_tracing插件,安装该插件后在控制台的管理tab页,就可以看到多了一个trace的菜单。
其中,最重要的是理解pattern的格式。一般来跟踪消息时会涉及到两个部分:有没有收到,有没有发出去。其抓包记录的格式如下:
但是要抓某个队列的发布或者消费测试了很多遍,总觉得这个pattern很模糊。晚上又仔细查看了插件的官网,找到如下:
The firehose publishes messages to the topic exchange amq.rabbitmq.trace with
routing key either "publish.exchangename", for messages entering the broker, or "deliver.queuename", for messages leaving the broker;
也就是抓publish跟着exchangename走,抓消费跟着queuename走。
https://www.rabbitmq.com/firehose.html