gpt4 book ai didi

c# - 在 MassTransit for .Net Core 2.2 中实现 IHealthCheck

转载 作者:行者123 更新时间:2023-11-30 22:58:37 27 4
gpt4 key购买 nike

是否有在 MassTransit 中实现 IHealthCheck 的想法。接口(interface) IHealthCheck在 .net Core 2.2 Preview 3 ( ASP.NET Core 2.2.0-preview3 now available ) 中引入

最佳答案

健康检查旨在通过定期控制所有必需的下游组件(如数据库、消息代理、缓存提供程序和我们的服务所依赖的其他服务)来确保服务健康。这就是 Microsoft 在默认情况下包括 SQL Server 或 URL 调用等健康检查的原因。

MassTransit 不是基础设施,它是一个消息传递中间件库。您可能感兴趣的是指标。有一些用于 MassTransit 的指标收集库,例如包含在主存储库中的那个,用于 Application Insight,或者我为 AppMetrics 和 Prometheus 制作的那些。指标会告诉您您的消费者是否过得好。但是,虽然健康检查是二元的(健康与否),但指标是相对的。比如,如果您在几分钟的时间窗口内得到的错误数量等于已使用的消息数量 - 您就有问题了。或者,关键时间(即发送或发布消息的时间与完全处理消息的时间之间的差值)不断增加或超过某个阈值。您需要根据您可以容忍的值设置一些更全面的警报来检测这些情况。

因此,如果您想要健康检查 - 考虑检查与您的总线使用的消息代理以及您的消费者使用的所有基础设施/服务的连接。对于消息代理,您可以使用 native 客户端实现这些检查。

但是,MassTransit 也可以做一些事情。可以将 IBusObserver 实例连接到总线控件,也可以为每个接收端点使用 IReceiveEndpointObserver 实例。如果总线无法启动或端点出现连接错误 - 您可能无法通过健康检查。在写这篇文章的时候,我有了一些想法,可能会在下周实现其中的一些检查:)

关于c# - 在 MassTransit for .Net Core 2.2 中实现 IHealthCheck,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52911473/

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