我目前正在开发一个由多个 C# .NET 7 应用程序组成的系统,这些应用程序通过消息发布和订阅机制进行通信。这些应用程序广泛使用 Azure 服务总线来实现云开发和生产目的。
我们在使用 ServiceInsight 监控消息系统时遇到了挑战。该问题围绕着大量“未知消息类型”消息的存在,这些消息扰乱了我们的视图,并使我们难以区分工作消息和未知消息。值得注意的是,这些“未知消息类型”消息缺少任何消息正文、错误信息或序列图。我们的日志也不会显示与这些消息相关的任何错误,仅提供有限的标头信息。
以下是我们使用的关键组件的版本:
以及我们项目中包含的 NuGet 包
我们正在寻求有关如何有效解决或解决此问题的指导或见解。任何帮助将不胜感激。预先感谢您的帮助!
我尝试过的:
我已经多次尝试解决系统中“未知消息类型”消息的问题,但到目前为止,我还无法查明问题的根源。这是我所做的:
队列和订阅重置:我首先删除了系统中的所有队列和订阅,然后从头开始重建它们,希望消除任何潜在的错误配置。但是,这并没有解决问题,我们仍然遇到大量“未知消息类型”消息。
检查订阅:我彻底检查了所有相关订阅,以确保它们设置正确。一切似乎都井然有序,并且不存在可能导致问题的异常配置或错误。
软件和代码检查:我还广泛检查了软件和代码库,但我无法识别任何可能导致生成“未知消息类型”消息的特定代码或配置。
预期结果:
我的主要目标是结束“未知消息类型”消息的持续涌入,并让 ServiceInsight 仅显示具有正确消息类型的消息。
问题可能出在消息上,而不是基础设施上。 NServeBus 依靠自定义标头来识别消息类型及其意图。检查消息标题以查看是否找到了这些标题。具体来说,查找
NServiceBus.EnclosedMessageTypes
标题。它应该告诉每条消息是什么类型。如果您没有看到它,则以下一项有问题。
并且不要在生产中清除和擦除命名空间中的实体。这只会加剧问题。