Vereisten: Sommige interfaces van Consul ondersteunen de functie "block query", die kan voorkomen dat vaak gegevens in Consul worden opgehaald; als de data niet verandert, wordt deze geblokkeerd tot het gespecificeerde moment vóór het antwoord, en als de data verandert, wordt het verzoek direct beantwoord.
Veel eindpunten in Consul ondersteunen een functie genaamd "blocking queries." Blokkeringsqueries worden gebruikt om te wachten op mogelijke wijzigingen met behulp van long polling. Niet alle eindpunten ondersteunen blokkeren, maar elk eindpunt documenteert uniek zijn ondersteuning voor het blokkeren van queries in de documentatie.
Documentatie:De hyperlink-login is zichtbaar.
Interfaces die Blocking Queries ondersteunen om queries te blokkeren
De responsheader geeft terug:X-Consul-Index, verzoekt queryparameters aan om te dragen:index(X-Consul-Index-inhoud van de laatste responsheader)
Dit artikel neemt de KV-opslagqueryinterface als voorbeeld, en het document:De hyperlink-login is zichtbaar., zoals getoond in de onderstaande figuur:
De eerste keer dat je de requestparameter niet draagt (of de standaardwaarde van 0)
Je ziet dat het antwoord onmiddellijk wordt teruggegeven en de responsheader bevat de x-consul-indexinformatie, zoals weergegeven in de volgende figuur:
Vraag de interface opnieuw aan
Draag de indexverzoekparameter, je ziet dat het verzoek geblokkeerd is (standaard is 5 minuten), en dan reageert de standaard wachttijd niet, zoals weergegeven in de onderstaande figuur:
Pas de waarde van KV aan tijdens het verzoekproces
Als de Block Query-functie wordt geactiveerd om te wachten tijdens het verzoekproces, zal het verzoek onmiddellijk reageren als de waarde van KV wordt gewijzigd, zoals weergegeven in de volgende figuur:
Voor .NET/C#-codeoproepen, zie het volgende:
Referentie:De hyperlink-login is zichtbaar.
(Einde)
|