Внедрить IHealthCheck в MassTransit для .Net Core 2.2 - PullRequest
0 голосов
/ 21 октября 2018

Есть ли идея реализовать IHealthCheck в MassTransit.Интерфейс IHealthCheck был представлен в .net Core 2.2 Preview 3 ( ASP.NET Core 2.2.0-preview3 теперь доступен )

1 Ответ

0 голосов
/ 21 октября 2018

Проверка работоспособности направлена ​​на обеспечение исправности службы, периодически контролируя все необходимые нисходящие компоненты, такие как базы данных, брокеры сообщений, поставщики кэша и другие службы, от которых зависит наша служба.Вот почему Microsoft по умолчанию включает проверки работоспособности, такие как SQL Server или URL-вызов.

MassTransit - это не инфраструктура, это библиотека промежуточного программного обеспечения для обмена сообщениями.Что вас может заинтересовать, так это метрики.Существует несколько библиотек метрических коллекций для MassTransit, таких как библиотека, включенная в основной репозиторий, для Application Insight, или библиотеки, которые я создал для AppMetrics и Prometheus.Метрики говорят вам, хорошо ли у ваших потребителей или нет.Но, хотя проверки работоспособности являются двоичными (исправными или нет), показатели являются относительными.Например, если вы получите количество ошибок, равное количеству использованных сообщений в течение нескольких минут - у вас проблема.Или критическое время (которое является разницей между временем, когда сообщение было отправлено или опубликовано, и временем, когда оно было полностью обработано) постоянно увеличивается или превышает определенный порог.Вам понадобится настроить несколько более полных предупреждений для обнаружения таких ситуаций на основе значений, которые вы можете допустить.

Итак, если вы хотите проверять работоспособность - рассмотрите возможность проверки соединения с брокером сообщений, который используется вашей шиной, и для него.вся инфраструктура / услуги, которые использует ваш потребитель.Для брокера сообщений вы можете реализовать эти проверки с помощью собственного клиента.

Однако есть несколько вещей, которые можно сделать и с MassTransit.Можно подключить экземпляр IBusObserver к контролю шины, а также использовать экземпляр IReceiveEndpointObserver для каждой принимающей конечной точки.Если шина не запускается или конечная точка получает ошибку соединения - вы можете не пройти проверку работоспособности.При написании этого я получил некоторые идеи и мог бы реализовать некоторые из этих проверок на следующей неделе:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...