• RabbitMQ之可靠性分析


    • 在使用任何消息中间件的过程中,难免会出现消息丢失等异常情况,这个时候就需要有一个良好的机制来跟踪记录消息的过程(轨迹溯源),帮助我们排查问题。
    • 在RabbitMQ 中可以使用Firehose 功能来实现消息追踪,Firehose 可以记录每一次发送或者消费消息的记录,方便RabbitMQ 的使用者进行调试、排错等。
    • Firehose 的原理是将生产者投递给RabbitMQ 的消息,或者RabbitMQ 投递给消费者的消息按照指定的格式发送到默认的交换器上。这个默认的交换器的名称为amq.rabbitmq.trace ,它是一个topic 类型的交换器。发送到这个交换器上的消息的路由键为publish.{exchangename}deliver.{queuename} 。其中exchangename queuename 为交换器和队列的名称,分别对应生产者投递到交换器的消息和消费者从队列中获取的消息。

    开启Firehose命令:

    rabbitmqctl trace_on [-p vhost]

    其中[-p vhost]是可选参数,用来指定虚拟主机vhost。

    对应的关闭命令为:

    rabbitmqctl trace_off [-p vhost]

            Firehose 默认情况下处于关闭状态,并且Firehose 的状态是非持久化的,会在RabbitMQ服务重启的时候还原成默认的状态。Firehose 开启之后多少会影响RabbitMQ 整体服务性能,因为它会引起额外的消息生成、路由和存储。

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

    可以使用命令来启动rabbitmq_ tracing 插件

    rabbitmq-plugins enable rabbitmq_tracing

    使用命令关闭该插件。

    rabbitmq-plugins disable rabbitmq_tracing

    • Name表示rabbitmq_tracing的一个条目的名称,Format可以选择Text或JSON,连接的用户名写root,密码写123456。
    • Pattern:发布的消息:publish.
    • Pattern:消费的消息:deliver. 

  • 相关阅读:
    ElasticSearch从入门到精通:基础知识
    Kotlin第八弹:Kotlin扩展
    OKHttp
    尚硅谷 Spring5
    Vue2.0 —— Vue.set(vm.$set) 源码探秘
    时序预测 | MATLAB实现ARMA自回归移动平均模型时间序列预测
    在C#中使用 NLog 库进行日志记录
    弹出框,使用树结构查询数据
    WPF布局控件之Grid布局
    FPGA Quartus IP核 打开使用
  • 原文地址:https://blog.csdn.net/weixin_52851967/article/details/128119885