在 ServiceInsight 中难以识别未知消息类型中的工作消息

问题描述 投票:0回答:1

我目前正在开发一个由多个 C# .NET 7 应用程序组成的系统,这些应用程序通过消息发布和订阅机制进行通信。这些应用程序广泛使用 Azure 服务总线来实现云开发和生产目的。

我们在使用 ServiceInsight 监控消息系统时遇到了挑战。该问题围绕着大量“未知消息类型”消息的存在,这些消息扰乱了我们的视图,并使我们难以区分工作消息和未知消息。值得注意的是,这些“未知消息类型”消息缺少任何消息正文、错误信息或序列图。我们的日志也不会显示与这些消息相关的任何错误,仅提供有限的标头信息。

Example of the issue

以下是我们使用的关键组件的版本:

  • 服务洞察:2.13.0
  • 服务控制:4.32.2
  • 服务脉冲:1.37.0

以及我们项目中包含的 NuGet 包

  • N服务总线:8.0.3
  • NServiceBus.RabbitMQ:8.0.1(用于本地)
  • NServiceBus.Metrics.ServiceControl:4.0.0
  • NServiceBus.Newtonsoft.Json:3.0.0
  • NServiceBus.ServicePlatform.Connector:2.0.1
  • NServiceBus.Transport.AzureServiceBus:3.2.0

我们正在寻求有关如何有效解决或解决此问题的指导或见解。任何帮助将不胜感激。预先感谢您的帮助!

我尝试过的:

我已经多次尝试解决系统中“未知消息类型”消息的问题,但到目前为止,我还无法查明问题的根源。这是我所做的:

  • 队列和订阅重置:我首先删除了系统中的所有队列和订阅,然后从头开始重建它们,希望消除任何潜在的错误配置。但是,这并没有解决问题,我们仍然遇到大量“未知消息类型”消息。

  • 检查订阅:我彻底检查了所有相关订阅,以确保它们设置正确。一切似乎都井然有序,并且不存在可能导致问题的异常配置或错误。

  • 软件和代码检查:我还广泛检查了软件和代码库,但我无法识别任何可能导致生成“未知消息类型”消息的特定代码或配置。

预期结果:

我的主要目标是结束“未知消息类型”消息的持续涌入,并让 ServiceInsight 仅显示具有正确消息类型的消息。

message-queue nservicebus servicebus serviceinsight nsb-servicecontrol
1个回答
0
投票

问题可能出在消息上,而不是基础设施上。 NServeBus 依靠自定义标头来识别消息类型及其意图。检查消息标题以查看是否找到了这些标题。具体来说,查找

NServiceBus.EnclosedMessageTypes
标题。它应该告诉每条消息是什么类型。如果您没有看到它,则以下一项有问题。

  1. 有一个本机集成,其中消息是从非 NServeBus 端点发送的。如果是这种情况,请按照文档示例正确集成。
  2. 消息从不应该这样做的进程意外发送到 NServeBus 端点队列。在这种情况下,请分析消息标头和有效负载以识别消息源并与团队一起审查。

并且不要在生产中清除和擦除命名空间中的实体。这只会加剧问题。

© www.soinside.com 2019 - 2024. All rights reserved.