RabbitMQ消息可靠性保证机制7--可靠性分析-rabbitmq_tracing插件

rabbitmq_tracing插件

rabbitmq_tracing插件相当于Firehose的GUI版本,它同样能跟踪RabbitMQ中消息的注入流出情况。rabbitmq_tracing插件同样会对流入流出的消息进行封装,然后将封装后的消息日志存入相应的trace文件中。

# 开启插件
rabbitmq-plugins enable rabbitmq_tracing

# 关闭插件
rabbitmq-plugins disable rabbitmq_tracing

代码使用之前Firehose的代码.
首先开启插件

[root@nullnull-os rabbitmq]# rabbitmq-plugins disable rabbitmq_tracing
Disabling plugins on node rabbit@nullnull-os:
rabbitmq_tracing
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@nullnull-os...
The following plugins have been disabled:
  rabbitmq_tracing

stopped 1 plugins.
[root@nullnull-os rabbitmq]# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: * = running on rabbit@nullnull-os
 |/
[  ] rabbitmq_amqp1_0                  3.8.5
[  ] rabbitmq_auth_backend_cache       3.8.5
[  ] rabbitmq_auth_backend_http        3.8.5
[  ] rabbitmq_auth_backend_ldap        3.8.5
[  ] rabbitmq_auth_backend_oauth2      3.8.5
[  ] rabbitmq_auth_mechanism_ssl       3.8.5
[  ] rabbitmq_consistent_hash_exchange 3.8.5
[  ] rabbitmq_event_exchange           3.8.5
[  ] rabbitmq_federation               3.8.5
[  ] rabbitmq_federation_management    3.8.5
[  ] rabbitmq_jms_topic_exchange       3.8.5
[E*] rabbitmq_management               3.8.5
[e*] rabbitmq_management_agent         3.8.5
[  ] rabbitmq_mqtt                     3.8.5
[  ] rabbitmq_peer_discovery_aws       3.8.5
[  ] rabbitmq_peer_discovery_common    3.8.5
[  ] rabbitmq_peer_discovery_consul    3.8.5
[  ] rabbitmq_peer_discovery_etcd      3.8.5
[  ] rabbitmq_peer_discovery_k8s       3.8.5
[  ] rabbitmq_prometheus               3.8.5
[  ] rabbitmq_random_exchange          3.8.5
[  ] rabbitmq_recent_history_exchange  3.8.5
[  ] rabbitmq_sharding                 3.8.5
[  ] rabbitmq_shovel                   3.8.5
[  ] rabbitmq_shovel_management        3.8.5
[  ] rabbitmq_stomp                    3.8.5
[  ] rabbitmq_top                      3.8.5
[E*] rabbitmq_tracing                  3.8.5
[  ] rabbitmq_trust_store              3.8.5
[e*] rabbitmq_web_dispatch             3.8.5
[  ] rabbitmq_web_mqtt                 3.8.5
[  ] rabbitmq_web_mqtt_examples        3.8.5
[  ] rabbitmq_web_stomp                3.8.5
[  ] rabbitmq_web_stomp_examples       3.8.5
[root@nullnull-os rabbitmq]# 

至网页端

在这里插入图片描述

填充跟踪信息

name表示rabbitmq_tracing的一个条目的名称,

format可以选择text或者JSON

连接用户名和密码,按创建的用户名管密码,这里填充:root/123456

pattern: 发布的消息: publish.

pattern: 消费的消息: deliver.

在这里插入图片描述

分别添加生产者的追溯和消费都的追溯,然后分别运行生产者和消费者。

在这里插入图片描述

text格式的文件信息:
在这里插入图片描述

json格式数据:

在这里插入图片描述

在这里还在两个队列:

在这里插入图片描述

这两个临时队列,在追溯停止后,也将不存在了。这就是网页端的追溯,相对于Firehose使用起来也更简单。可以直接通过网页端进行查看。

### RabbitMQ 消息追踪功能的实现与配置 #### 使用 Firehose 实现消息追踪 为了实现在 RabbitMQ 中的消息追踪,可以启用名为 Firehose 的特性[^1]。Firehose 是一种特殊类型的消费者,它会接收所有经过特定交换机的消息副本。这种方式使得开发者能够在不影响原有业务逻辑的情况下监控和调试消息流。 要激活此功能,需安装 `rabbitmq_tracing` 插件并重启服务: ```bash rabbitmq-plugins enable rabbitmq_tracing ``` 之后,在管理界面上可以看到一个新的虚拟主机选项卡叫做 "Traces",在这里可以选择想要跟踪哪个交换机以及设置目标队列用于存储被复制出来的消息数据。 #### 配置 Tracer Exchange 和 Trace Queue 当启用了上述插件后,可以通过创建一个 tracer exchange 来指定哪些消息应该被捕获到 trace queue 中去。通常情况下,这个特殊的 exchange 类型为 direct 或 topic,并且绑定至实际的应用程序使用的生产者所发送消息的目标exchange上。这样做的好处是可以灵活控制哪一部分流量进入日志记录流程而不必修改现有应用程序代码。 对于每一个希望监视其活动的常规 exchange ,都需要建立相应的 binding 关系指向 tracer exchange 。而后者则负责将接收到的信息转发给预先定义好的 trace queues 之一。这些queues中的内容就可以作为审计用途或是故障排查时的重要依据了。 #### 日志级别调整与其他注意事项 值得注意的是,虽然开启全面的日志记录有助于深入理解系统的运行状况,但这也会带来额外性能开销。因此建议仅在必要时候打开详细的trace模式,并及时关闭以减少资源消耗。另外还可以通过调整日志等级来平衡诊断信息量级与系统效率之间的关系。 最后提醒一点就是确保有足够的磁盘空间用来保存可能产生的大量日志文件;同时也要考虑到隐私保护方面的要求,避免敏感资料泄露风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值