.NET核心运行状况检查RabbitMQ-多个连接节点/群集监视

.NET核心运行状况检查RabbitMQ-多个连接节点/群集监视,rabbitmq,asp.net-core-webapi,Rabbitmq,Asp.net Core Webapi,我试图使用文档中的基本用法来监视2RabbitMQ连接的运行状况 但是,当尝试通过停止Windows上的服务在第二个连接上复制“停机”时,我会遇到两种不健康状态,尽管可以从Uri访问rabbitMqNode1: { "Status": "Unhealthy", "Platform": "rabbitMqNode1", "

我试图使用文档中的基本用法来监视2
RabbitMQ
连接的运行状况

但是,当尝试通过停止Windows上的服务在第二个连接上复制“停机”时,我会遇到两种不健康状态,尽管可以从Uri访问rabbitMqNode1

        {
            "Status": "Unhealthy",
            "Platform": "rabbitMqNode1",
            "Date": "2021-04-27T02:19:47.9615006+08:00",
            "Description": "None of the specified endpoints were reachable"
        },
        {
            "Status": "Unhealthy",
            "Platform": "rabbitMqNode2",
            "Date": "2021-04-27T02:19:47.9615381+08:00",
            "Description": "None of the specified endpoints were reachable"
        }

我已经尝试了其他连接,但仍然得到相同的结果。RabbitMQ healthcheck包是否可以用于多个监视?

我不熟悉所讨论的库,但我怀疑您需要确定依赖项的范围。DI框架如何知道哪个RMQ健康检查得到哪个
IConnection
实例?我已经根据他们的文档指定它使用特定的连接字符串。我为这个实例命名了节点rabbitMqNode1和2。我注意到的行为是,如果我在2(不健康)之后声明1(健康),我就会变得健康。它似乎覆盖了第一个声明的rabbitMQ健康检查,这很奇怪。我已经设置了其他运行状况检查(其他端点和sql server),它正在返回预期的行为。您可以尝试在它们自己的范围内连接所有内容吗?服务上有一个addScope方法,但我认为您也可以添加一个作用域,并在lambda中注册多个依赖项,所有依赖项都作为一个组。我认为现在的问题是DI容器没有正确地将每个连接与每个健康检查关联起来,如果你仔细想想,它真的不能。查看作用域,可能是终身作用域。您还可以问另一个问题,重点是如何注册具有相同接口但每个组需要连接在一起的多个服务组。您好,是的,我已经尝试了作用域,但DLL实现要求它作为单例。我最终创建了我自己的rabbitMq健康检查以进行注册,现在它按预期工作。多谢各位