Проверка работоспособности ткани обслуживания - PullRequest
0 голосов
/ 18 декабря 2018

Есть ли встроенная проверка работоспособности сервисной ткани?У меня есть гостевой исполняемый файл, написанный на NET Core 2.2 и использующий в нем функцию проверки работоспособности.Например, у меня есть простая проверка работоспособности, которая возвращает нездоровое состояние:

        services
            .AddHealthChecks()
            .AddCheck<DocumentDbHealthCheck>("cosmos-database");

    internal class DocumentDbHealthCheck : IHealthCheck
    {
        public Task<HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default(CancellationToken))
        {
            return Task.FromResult(HealthCheckResult.Unhealthy());
        }
    }

Я подключил это с помощью:

app.UseHealthChecks(@"/foo/bar/v1/healthcheck");

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

Возможно ли, чтобы сервисная фабрика достигла маршрута проверки работоспособности API?

1 Ответ

0 голосов
/ 18 декабря 2018

Healthcheck , представленный на AspNetCore, представляет собой механизм возврата данных о состоянии некоторой службы, он не влияет на фактическое состояние службы.

В Service Fabric, если выЕсли вы хотите сообщить о работоспособности из службы в систему работоспособности Service Fabric, вы можете использовать ReportReplicaHealth() API.что-то вроде this :

HealthInformation healthInformation = new HealthInformation("ServiceCode", "StateDictionary", HealthState.Error);
this.Partition.ReportReplicaHealth(healthInformation);

Это будет отображаться в SF Explorer как ошибка.

Вы также можете сообщать о проблемах, используя FabricClient, как описано здесь, в этом случае вы должны создать службу для мониторинга других служб и затем сообщить об их статусе, также называемую Watchdog.

AFAIK, Service Fabric не имеет механизма HTTP Probe для проверки работоспособностислужба использует внутренние метрики, о которых служба сообщает напрямую в подсистему работоспособности.

Если вы планируете использовать ее для проверки работоспособности службы перед отправкой запроса в нее, вы можете использовать балансировщик нагрузки http-зондов или вы можете просто поместить его за прокси-сервер, который обрабатывает сбои, и перенаправить запрос на действительный узел, например встроенный обратный прокси-сервер, как описано здесь .

...