在做开发或者debug的时候,如果能看到进入到message broker的消息以及message broker分发的消息的话会很有帮助, rabbitmq 本身提供这样的一个叫做firehose(消防管道)的feature。
除此之外,rabbitmq还有一个叫做rabbitmq_tracing 的插件,可以让程序员通过可视化的方式配置tracer。
1. Enable 这个plugin
rabbitmq-plugins enable rabbitmq_tracing
检查这个plugin是否被enable了
rabbitmq-plugins list
如果显示如下,说明plugin已经正确的enable了
2. 配置相应的tracer
当rabbitmq_tracing这个plugin被安装后再rabbitmq management UI界面的admin tab下面会有一个新的选项叫tracing
3. 添加一个tracer。
- 选择一个virtualhost, 这个virtualhost 必须让用户’guest‘ 有操作的权限。
- 属于一个name, trace log的名字会和这个名字相同。
- 选择format, json或者text。
- 选择一个Pattern, deliver.# 将所有rmq delivered 的消息做备份。 publish.# 将rmq所有收到的数据做备份
- Playload limit, 如果一条数据的大小超过这个数字,消息就会被截断。
添加完tracer之后, 会看到对应的queue已经被自动创建:
两个tracer会自动创建两个queue, 因为我们做了ha+2, 所以会有4个queue被创建。
4. 向这个virtualhost里面的任意一个queue发送那个数据, 会看到对应的trace log显示在页面上:
这个log会默认保存在硬盘上的 /var/tmp/rabbitmq-tracing目录下面。