[英]how to detect connection issues to rabbit mq using mass transit?
如何使用 Mass Transit to RabbitMQ 检测消息代理配置是否有效或与消息代理的连接是否丢失? 当 RabbitMQ 存在时发布消息时,如果没有代理连接,似乎不会立即抱怨,并且似乎在 RabbitMQ 服务器出现时恢复。 有没有办法监听连接事件并在配置无效时发出警告?
如果您使用 .NET Core 并按照文档配置 MassTransit,您可以解析IBusHealth
的实例并在您的服务中使用它。
AddMassTransit
方法注册默认实例,您可以随时询问总线健康状态。 那是方法代码:
public HealthResult CheckHealth()
{
var endpointHealthResult = _endpointHealth.CheckHealth();
var data = new Dictionary<string, object> {["Endpoints"] = endpointHealthResult.Data};
return _healthy && endpointHealthResult.Status == BusHealthStatus.Healthy
? HealthResult.Healthy("Ready", data)
: HealthResult.Unhealthy($"Not ready: {_failureMessage}", data: data);
}
如您所见,如果您调用busHealth.CheckHealth()
,它将返回Healthy
或Unhealthy
,在后一种情况下,还会为您提供失败端点的列表。
由于BusHealth
仅监视总线本身及其所有接收端点,因此当您的服务未能发布消息时,您可能不会收到通知。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.