在使用rabbitmq时,我们有时需要查看消息队列生产/消费了那些消息,便于我们排错。rabbitmq中提供一个插件rabbitmq_tracing用于记录消息的日志,默认是未打开的,需要自己用命令打开
docker exec -it rabbitmq1 bash # 查看打开的插件 rabbitmq-plugins list # 启动日志插件 rabbitmq-plugins enable rabbitmq_tracing # 开启rabbitmq的tracing插件 rabbitmqctl trace_on # 如果添加到其他虚拟主机 # -p 参数前缀 加上你的虚拟主机名字 rabbitmqctl trace_on -p myhost
- 关闭trace功能
# 关闭trace功能 rabbitmqctl trace_off # 关闭其他虚拟主机 rabbitmqctl trace_off -p myhost
- 停止tracing
rabbitmq-plugins disable rabbitmq_tracing
安装该插件后在控制台的管理tab页,在Admin中会发现右侧有多了一个Tracing选项
-
name:用于区分不同的track
-
Format:表示输出的消息日志格式,有Text和JSON两种,Text格式的日志方便人类阅读,JSON的方便程序解析
-
Pattern:用来设置匹配的模式,和Firehose的类似。如“#”匹配所有消息流入流出的记录;“publish.#”匹配所有消息流入的情况;“deliver.#”匹配所有消息流出的情况。
其中,最重要的是理解pattern的格式。一般来跟踪消息时会涉及到两个部分:有没有发布到MQ,有没有发出去。其抓包记录的格式如下:
publish是到exhange的时间;recevied是到queue的时候,并不是推送到消费者的时间,如果消费慢,那么积压是必然的,可能会很久后才被处理,这个只能在消费端跟踪。
官网
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走。
-
- 停止tracing
猜你喜欢
- 18小时前计算机毕业设计 基于Hadoop的物品租赁系统的设计与实现 Java实战项目 附源码+文档+视频讲解
- 18小时前将网页数据读入数据库+将数据库数据读出到网页——基于python flask实现网页与数据库的交互连接【全网最全】
- 18小时前【HarmonyOS】深入了解 ArkUI 的动画交互以提高用户体验
- 11小时前即日是什么意思(即日是词语吗)
- 9小时前氧气由什么构成(氧气由什么构成?)
- 8小时前patrol尼桑(patrol尼桑途乐价格)
- 6小时前完整的西瓜可以放多久(完整的西瓜一般可以放多久)
- 4小时前芒果籽怎么种才能发芽(芒果籽怎么种才能发芽呢)
- 2小时前简单的童言趣语怎么写(童言趣语 短句)
- 27分钟前中信客服电话(中信客服电话多少)
网友评论
- 搜索
- 最新文章
- 热门文章