贝博中国
贝博中国
贝博中国

怎么样做RocketMQ消息轨迹的分析

时间: 2024-02-03 11:24:00 |   作者: 承载带封装之上带(盖带)

  本篇文章给大家伙儿一起来分享的是有关怎么样做RocketMQ消息轨迹的分析,小编觉得挺实用的,因此分享给大家学习,希望我们大家阅读完这篇文章后可以有所收获,话不多说,跟着小编共同来看看吧。

  RocketMQ消息轨迹,主要跟踪消息发送、消息消费的轨迹,即详细记录消息各个处理环节的日志,从设计上至少要解决如下三个核心问题:

  traceType跟踪类型,可选值:Pub(消息发送)、SubBefore(消息拉取到客户端,执行业务定义的消费逻辑之前)、SubAfter(消费后)。

  消息中间件的两大核心主题:消息发送、消息消费,其核心载体就是消息,消息轨迹(消息的流转)主要是记录消息是何时发送到哪台Broker,发送耗时多少时间,在什么是被哪个消费者消费。记录消息的轨迹主要是集中在消息发送前后、消息消费前后,能够最终靠RokcetMQ的Hook机制。通过如下两个接口来定义钩子函数。

  消息轨迹需要存储什么消息以及在何时记录消息轨迹的问题都以及解决,那接下来就得思考将消息轨迹存储在哪里?存储在数据库中或其他媒介中,都会加重消息中间件,使其依赖外部组件,最佳的选择还是存储在Broker服务器中,将消息轨迹数据也当成一条消息存储到Broker服务器。

  既然把消息轨迹当成消息存储在Broker服务器,那存储消息轨迹的Topic怎么样确定呢?RocketMQ提供了两种方法来定义消息轨迹的Topic。

  自定义Topic在创建消息生产者或消息消费者时,能够最终靠参数自定义用于记录消息轨迹的Topic名称,不过要注意的是,rokcetmq控制台(rocketmq-console)中只支持配置一个消息轨迹Topic,故自定义Topic,在目前此阶段或许还不是一个最佳实践,建议使用系统默认的Topic即可。

  通常为了尽最大可能避免消息轨迹的数据与正常的业务数据混合在一起,官方建议,在Broker集群中,新增加一台机器,只在这台机器上开启消息轨迹跟踪,这样该集群内的消息轨迹数据只会发送到这一台Broker服务器上,并不会增加集群内原先业务Broker的负载压力。

  以上就是怎么样做RocketMQ消息轨迹的分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。