Wymagania: Niektóre interfejsy Consul obsługują funkcję "blok query", która może zapobiec częstemu pobieraniu danych w Consul; jeśli dane się nie zmienią, zostaną zablokowane do określonego czasu przed odpowiedzią, a jeśli dane się zmienią, żądanie zostanie natychmiast odpowiedziane.
Wiele punktów końcowych w Consul obsługuje funkcję zwaną "blokowaniem zapytań". Zapytania blokujące służą do oczekiwania na potencjalne zmiany przy użyciu długiego pollingu. Nie wszystkie endpointy obsługują blokowanie, ale każdy endpoint unikalnie dokumentuje wsparcie dla blokowania zapytań w dokumentacji.
Dokumentacja:Logowanie do linku jest widoczne.
Interfejsy wspierające blokowanie zapytań do blokowania zapytań
Nagłówek odpowiedzi zwraca:X-Consul-Index, żąda parametrów zapytań o przeniesienie:indeks(Zawartość X-Consul-Index w nagłówku ostatniej odpowiedzi)
Ten artykuł podaje jako przykład interfejs zapytań pamięci KV oraz dokument:Logowanie do linku jest widoczne., jak pokazano na poniższym rysunku:
Za pierwszym razem nie nosisz parametru żądania (lub nie nosisz domyślnej wartości 0)
Widać, że odpowiedź jest zwracana natychmiast, a nagłówek odpowiedzi zawiera informację o indeksie x-consul, jak pokazano na poniższym rysunku:
Ponownie poproś interfejs
Przenosząc parametr indeksowego żądania, zobaczysz, że żądanie zostało zablokowane (domyślnie 5 minut), a wtedy domyślny czas oczekiwania nie odpowiada, jak pokazano na poniższym rysunku:
Zmodyfikuj wartość KV podczas procesu żądania
Jeśli funkcja zapytania blokowego zostanie wywołana do oczekiwania podczas procesu żądania, a wartość KV zostanie zmodyfikowana, żądanie odpowie natychmiast, jak pokazano na poniższym rysunku:
W przypadku wywołań kodu .NET/C# należy odnieść się do następujących wywołań:
Odniesienie:Logowanie do linku jest widoczne.
(Koniec)
|