Krav: Noen grensesnitt i Consul støtter funksjonen "blokkspørring", som kan forhindre hyppig henting av data i Consul; hvis dataene ikke endres, vil de bli blokkert til det angitte tidspunktet før svar, og hvis dataene endres, vil forespørselen bli besvart umiddelbart.
Mange endepunkter i Consul støtter en funksjon kalt «blocking queries». Blokkeringsforespørsler brukes til å vente på potensielle endringer ved bruk av lang polling. Ikke alle endepunkter støtter blokkering, men hvert endepunkt dokumenterer unikt sin støtte for blokkeringsforespørsler i dokumentasjonen.
Dokumentasjon:Innloggingen med hyperkoblingen er synlig.
Grensesnitt som støtter blokkeringsforespørsler for å blokkere spørringer
Responsheaderen returnerer:X-Konsul-indeks, be om spørringsparametere for å bære:indeks(X-Consul-Index-innholdet i siste svarhode)
Denne artikkelen tar KV-lagringsspørringsgrensesnittet som et eksempel, og dokumentet:Innloggingen med hyperkoblingen er synlig., som vist i figuren nedenfor:
Første gang du ikke bærer forespørselsparameteren (eller bærer standardverdien 0)
Du kan se at svaret returneres umiddelbart, og svarhodet inneholder x-consul-index-informasjonen, som vist i følgende figur:
Be om grensesnittet igjen
Bær indeksforespørselsparameteren, du kan se at forespørselen er blokkert (standard er 5 minutter), og da vil ikke standard ventetid svare, som vist i figuren under:
Endre verdien av KV under forespørselsprosessen
Hvis Block Query-funksjonen utløses til å vente under forespørselsprosessen, og verdien av KV endres, vil forespørselen svare umiddelbart, som vist i følgende figur:
For .NET/C#-kodekall, se følgende:
Referanse:Innloggingen med hyperkoblingen er synlig.
(Slutt)
|