Krav: Nogle grænseflader i Consul understøtter "blokforespørgsel"-funktionen, som kan forhindre hyppig dataudtrækning i Consul; hvis dataene ikke ændres, vil de blive blokeret indtil det angivne tidspunkt før svar, og hvis dataene ændres, besvares anmodningen straks.
Mange endpoints i Consul understøtter en funktion kaldet "blocking queries." Blokeringsforespørgsler bruges til at vente på potentielle ændringer ved hjælp af lang polling. Ikke alle endpoints understøtter blokering, men hvert endpoint dokumenterer unikt sin støtte til blokeringsforespørgsler i dokumentationen.
Dokumentation:Hyperlink-login er synlig.
Grænseflader, der understøtter blokeringsforespørgsler for at blokere forespørgsler
Svarheaderen returnerer:X-Konsul-Indeks, anmoder om forespørgselsparametre til at bære:indeks(X-Consul-Index-indholdet i den sidste svarheader)
Denne artikel tager KV-lagerforespørgselsgrænsefladen som eksempel, og dokumentet:Hyperlink-login er synlig., som vist i figuren nedenfor:
Første gang du ikke bærer anmodningsparameteren (eller har standardværdien 0)
Du kan se, at svaret returneres med det samme, og svarheaderen indeholder x-consul-index-informationen, som vist i følgende figur:
Anmod om interfacet igen
Bær indeksanmodningsparameteren, du kan se, at anmodningen er blokeret (standard er 5 minutter), og så vil standardventetiden ikke svare, som vist i figuren nedenfor:
Ændr værdien af KV under anmodningsprocessen
Hvis Block Query-funktionen aktiveres til at vente under anmodningsprocessen, vil anmodningen reagere straks, hvis værdien af KV ændres, som vist i følgende figur:
For .NET/C#-kodekald, se følgende:
Henvisning:Hyperlink-login er synlig.
(Slut)
|