gpt4 book ai didi

rabbitmq - 解码 RabbitMQ 有效负载

转载 作者:行者123 更新时间:2023-12-01 03:06:24 26 4
gpt4 key购买 nike

在我们的团队中,我们通过 RabbitMQ 在两个系统之间交换消息。消息在 protobuf (v3) 中编码。我们在发送端和接收端使用 NServiceBus。我们使用 RabbitMQ 管理 UI 来监控错误队列。在生产中,我们注意到很难理解错误队列中消息的有效负载,它们是 base64 编码的。

获得对错误队列中消息的可读访问权限的最简单方法是什么?我们可以完全控制两个系统中的决策,并且还讨论了向 JSON 编码消息(而不是 protobuf)的切换。但是我们对基于 protobuf 的实现很满意。毕竟已经实现了。

最佳答案

Protobuf v3 支持格式化为 json,一旦您将数据解析为 IMessage (内存中 protobuf 对象的基本类型)。

因此,您可以将单个消息转换为人类可读的,如下所示:

  • 使用 webUI GetMessage函数以 base64 格式获取消息,然后将其重新排队
  • 将消息转换回 protobuf二进制通过 Convert.FromBase64String
  • 将其解析回 IMessage通过 ProtoMessageTypeGoesHere.Parser.ParseFrom(binaryData)

  • 然后,您可以通过 ToString() 将解析的消息转换为 Json。或 Google.Protobuf.JsonFormatter .

    只要您的错误队列不会因重新排队(例如重置时间戳或重新处理)而中断,您应该能够对队列中的所有消息执行此操作。

    关于rabbitmq - 解码 RabbitMQ 有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56940428/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com