Требования: Некоторые интерфейсы Consul поддерживают функцию «блочного запроса», которая может предотвращать частое извлечение данных в Consul; если данные не меняются, они будут заблокированы до установленного времени до ответа, а если данные изменятся — запрос будет немедленно откликнут.
Многие конечные точки в Consul поддерживают функцию под названием «блокирующие запросы». Блокирующие запросы используются для ожидания возможных изменений с помощью длинного опроса. Не все конечные точки поддерживают блокировку, но каждая конечная точка уникально документирует свою поддержку блокирующих запросов в документации.
Документация:Вход по гиперссылке виден.
Интерфейсы, поддерживающие блокирующие запросы для блокировки запросов
Заголовок ответа возвращается:X-Consul-Index, запрос параметров запроса для переноски:индекс(Содержимое X-Consul-Index в заголовке последнего ответа)
В этой статье приведен интерфейс запросов к хранилищу KV в качестве примера и документ:Вход по гиперссылке виден., как показано на рисунке ниже:
В первый раз вы не переносите параметр запроса (или не носите значение по умолчанию 0)
Вы можете увидеть, что ответ возвращается немедленно, а заголовок ответа содержит информацию x-consul-index, как показано на следующем рисунке:
Запросите интерфейс снова
Если использовать параметр индексного запроса, вы увидите, что запрос заблокирован (по умолчанию 5 минут), и тогда стандартное время ожидания не отвечает, как показано на рисунке ниже:
Изменять значение KV во время процесса запроса
Если функция Block Query активируется для ожидания во время процесса запроса, если значение KV изменено, запрос ответит немедленно, как показано на следующем рисунке:
Для вызовов кода .NET/C# см. следующее:
Ссылка:Вход по гиперссылке виден.
(Конец)
|