Skip to content

Latest commit

 

History

History
77 lines (51 loc) · 3.44 KB

File metadata and controls

77 lines (51 loc) · 3.44 KB

Функционал дающий приложению два метода для получения проб на служебном порту для предоставления информации о жизнеспособности и готовности сервиса.

Предоставляется по средствам подключения служебного HTTP сервера.

Жизнеспособности

Эта проба отвечает за признак — является ли приложение живым в данный момент. Kora старается начать отдавать эту пробу как можно раньше, чтобы оркестраторы точно знали, что нет проблем при старте и не пытались сделать рестарт приложения.

Пример конфигурации пути HTTP сервера для получения проб, описанной в классе HttpServerConfig (указаны значения по умолчанию):

===! ":material-code-json: Hocon"

```javascript
httpServer {
    privateApiHttpLivenessPath = "/system/liveness"
}
```

=== ":simple-yaml: YAML"

```yaml
httpServer:
  privateApiHttpLivenessPath: "/system/liveness"
```

Для создания собственной пробы жизнеспособности требуется чтобы компонент реализовывал интерфейс:

public interface LivenessProbe {

    @Nullable
    LivenessProbeFailure probe();
}

В случае ошибки проба должна возвращать LivenessProbeFailure, а в случае успеха null.

Готовности

Эта проба отвечает за признак — является ли приложение готовым к работе в данный момент.

Пример конфигурации пути HTTP сервера для получения проб, описанной в классе HttpServerConfig (указаны значения по умолчанию):

===! ":material-code-json: Hocon"

```javascript
httpServer {
    privateApiHttpReadinessPath = "/system/readiness"
}
```

=== ":simple-yaml: YAML"

```yaml
httpServer:
  privateApiHttpReadinessPath: "/system/readiness"
```

Для создания собственной пробы жизнеспособности требуется чтобы компонент реализовывал интерфейс:

public interface ReadinessProbe {

    @Nullable
    ReadinessProbeFailure probe();
}

В случае ошибки проба должна возвращать ReadinessProbeFailure, а в случае успеха null.

Совет

???+ warning "Совет"

**Мы крайне не советуем делать пробы, проверяющие внешние зависимости, такие как базы данных или другие сервисы.**

В случае недоступности внешних зависимостей рекомендуется использовать шаблон [Прерыватель](resilient.md#_2). 

Хорошим примером для ReadinessProbe может служить проба, которая возвращает ошибку во время прогрева сервиса.