Anforderungen: Einige Consul-Schnittstellen unterstützen die Funktion "Blockanfrage", die häufige Datenabrufe in Consul verhindern kann; wenn sich die Daten nicht ändern, werden sie bis zur angegebenen Zeit vor der Antwort blockiert, und wenn sich die Daten ändern, wird die Anfrage sofort beantwortet.
Viele Endpunkte in Consul unterstützen eine Funktion namens "Blockierungsanfragen". Blockierungsabfragen werden verwendet, um auf mögliche Änderungen mit Long Polling zu warten. Nicht alle Endpunkte unterstützen Blockierung, aber jeder Endpunkt dokumentiert eindeutig seine Unterstützung für Blockanfragen in der Dokumentation.
Dokumentation:Der Hyperlink-Login ist sichtbar.
Schnittstellen, die Blocking Queries zur Blockierung von Abfragen unterstützen
Der Antwort-Header liefert:X-Konsul-Index, fordern Sie Abfrageparameter an, die übertragen werden:Index(X-Consul-Index-Inhalt des letzten Antwortheaders)
Dieser Artikel nimmt die KV-Speicher-Abfrageschnittfläche als Beispiel und das Dokument:Der Hyperlink-Login ist sichtbar., wie in der untenstehenden Abbildung dargestellt:
Das erste Mal trägst du den Anfrageparameter nicht (oder tragst den Standardwert 0)
Sie sehen, dass die Antwort sofort zurückgegeben wird und der Antwort-Header die x-consul-index-Informationen enthält, wie in der folgenden Abbildung dargestellt:
Fordern Sie die Schnittstelle erneut an
Tragen Sie den Index Request-Parameter, Sie sehen, dass die Anfrage blockiert ist (Standard beträgt 5 Minuten), und dann antwortet die Standardwartezeit nicht, wie in der Abbildung unten gezeigt:
Ändere den Wert von KV während des Anforderungsprozesses
Wenn die Block Query-Funktion während des Anforderungsprozesses zum Warten ausgelöst wird, reagiert die Anfrage sofort, wenn der Wert von KV geändert wird, wie in der folgenden Abbildung gezeigt:
Für .NET/C#-Codeaufrufe siehe Folgendes:
Referenz:Der Hyperlink-Login ist sichtbar.
(Ende)
|