Реализовать пассивную систему проверки состояния, которая при сбое соединения/чтения/записи регистрирует его как сбой конечной точки.
syntax: health_check, err = health_check.init(params)
Инициализирует объект системы проверки состояния, переопределяя значения параметров по умолчанию переданными. В случае ошибок возвращает nil
и строку, описывающую ошибку.
syntax: health_check.report_failure(etcd_host)
Записывает информацию о сбое состояния, который будет учтен при достижении необходимого количества повторяющихся сбоев для объявления цели как "неудачной".
syntax: healthy, err = health_check.get_target_status(etcd_host)
Получает текущее состояние цели.
syntax: mode = health_check.get_check_mode()
Получает текущий режим работы системы проверки состояния. Когда mode
равен round-robin
, это указывает на работу в режиме Round robin, а shared-dict
указывает на работу в режиме Policy, disabled
указывает на отключенное состояние системы проверки.
Для получения текущего режима работы системы проверки состояния можно использовать health_check.ROUND_ROBIN_MODE
и health_check.SHARED_DICT_MODE
, health_check.DISABLED_MODE
для сравнения и проверки.
syntax: mode = health_check.disable()
Отключает систему проверки состояния.
name | Type | Обязательность | Default | Description |
---|---|---|---|---|
shm_name | string | необязательный | Декларативный lua_shared_dict используется для хранения состояния здоровья конечных точек; если этот параметр не установлен, проверка будет возвращена в режим round-robin проверки. |
|
fail_timeout | integer | необязательный | 10 | Устанавливает время, в течение которого должно произойти указанное количество неудачных попыток связи с конечной точкой, чтобы пометить её недоступной, а также устанавливает период времени, в течение которого конечная точка будет помечена как недоступная. |
max_fails | integer | необязательный | 1 | Устанавливает количество неудачных попыток, которое должно произойти в течение периода fail_timeout , чтобы пометить конечную точку как недоступную. Эта конфигурация действует только при политике проверки. |
retry | bool | необязательный | false | Автоматически повторяет попытку со следующей конечной точкой при неудаче операции. |
local health_check, err = require("resty.etcd.health_check").init({
shm_name = "healthcheck_shm",
fail_timeout = 10,
max_fails = 1,
retry = false,
})
```При достижении значения `fail_timeout`, если будет зафиксировано `max_fails` последовательных ошибок, конечная точка будет помечена как нездоровая. Нездоровая конечная точка не будет выбрана для соединения в течение времени, указанного значением `fail_timeout`.
Механизм проверки состояния здоровья будет переключаться на другую конечную точку только тогда, когда текущая выбранная конечная точка будет помечена как нездоровая.
Счетчики ошибок и состояние здоровья каждой конечной точки etcd являются общими для всех рабочих процессов и различных клиентов etcd.
Примечание: значения `fail_timeout`, `max_fails` и `retry` после инициализации будут сброшены только при смене режима работы механизма проверки состояния здоровья.
### Округление по круговой системе
```lua
local health_check, err = require("resty.etcd.health_check").init({
fail_timeout = 10,
retry = false,
})
Проверка состояния здоровья по круговой системе. Когда конечная точка становится недоступной, она помечается как нездоровая и не используется для соединения в течение времени, указанного значением fail_timeout
(выбирается следующая здоровая конечная точка для соединения).
Нездоровые узлы будут возвращены в пул выбора здоровых узлов после истечения времени, указанного значением fail_timeout
.
Статус нездоровых узлов etcd действителен только для текущего рабочего процесса.## Краткий обзор
http {
# Обязательное объявление зоны общей памяти для хранения состояния здоровья конечных точек
# Если вы используете метод округления для проверки состояния здоровья, вам не нужно устанавливать это
lua_shared_dict healthcheck_shm 1m;
server {
location = /healthcheck {
content_by_lua_block {
# Возможность использования функции проверки состояния здоровья является опциональной и может быть включена с помощью следующей конфигурации.
# Если вы используете метод округления для проверки состояния здоровья, вам не нужно устанавливать это
local health_check, err = require("resty.etcd.health_check").init({
shm_name = "healthcheck_shm",
fail_timeout = 10,
max_fails = 1,
retry = false,
})
Локальная переменная `etcd`, ошибки = требовать("resty.etcd").новый({
протокол = "v3",
http_host = {
"http://127.0.0.1:12379",
"http://127.0.0.1:22379",
"http://127.0.0.1:32379",
},
пользователь = 'root',
пароль = 'abc123',
})
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )