Dieser Artikel wird Ihnen durch die golangTutorial-Kolumne über Sentinel-Strombegrenzung und Leistungsschalter-Downgrade vorgestellt. Der Inhalt umfasst eine Einführung in Strombegrenzung und Leistungsschalter sowie Alibaba Open Source Sentinel, Installation und praktische Einführung Ich hoffe, es wird Freunden in Not helfen!
Was ist ein Strombegrenzungsschalter-Downgrade?
Strombegrenzung: Wenn in unserem erworbenen System an diesem Tag plötzlich eine große Menge an Datenverkehr eintrifft, kann unser Service dies nur tun Behandeln Sie maximal 2.000 Anfragen gleichzeitig, und plötzlich kamen 5.000 Anfragen. Ist das nicht eine schreckliche Belastung für den Server? Dies kann direkt dazu führen, dass der Server ausfällt und abstürzt, was dazu führt, dass das ursprüngliche 2K-Verarbeitungsvolumen nicht mehr möglich ist Zu diesem Zeitpunkt müssen wir den Fluss begrenzen. Die Funktion des Flusslimits besteht darin, die Anzahl der Besuche auf dem Server auf dem höchsten Niveau zu halten und die redundanten Anforderungen nicht zu verarbeiten direkt auflegen. Wenn wir beispielsweise während Double Eleven eine Bestellung aufgeben möchten, sehen wir etwas wie „Die Anfrage ist beschäftigt, bitte versuchen Sie es später noch einmal!“.
Sicherung: Ich glaube, jeder kennt den Leistungsschalter. Er entspricht einem Schalter, der im geöffneten Zustand den Verkehrsfluss unterbinden kann. Beispielsweise brennt eine Sicherung durch, wenn der Strom zu groß ist, um Schäden an Bauteilen zu vermeiden.
Service-Leistungsschalter bedeutet, dass der Anrufer über einen Leistungsschalter als Proxy auf den Dienst zugreift. Der Leistungsschalter überwacht weiterhin den vom Dienst zurückgegebenen Erfolgs- und Fehlerstatus.
Wenn der Fehler den eingestellten Schwellenwert überschreitet ist geöffnet und die Anfrage kann nicht authentifiziert werden. Der Dienst wird lokal aufgerufen.
NutzungsszenarienWenn der Dienst ausfällt oder aktualisiert wird, lassen Sie den Client schnell ausfallen.
Die Fehlerverarbeitungslogik ist einfach zu definieren.
Geschichte von Sentinel
Im Jahr 2012 wurde Sentinel geboren, seine Hauptfunktion ist die Kontrolle des Einlassflusses. Von 2013 bis 2017 entwickelte sich Sentinel innerhalb der Alibaba Group rasant und wurde zu einem Basistechnologiemodul, das alle Kernszenarien abdeckt. Infolgedessen hat Sentinel eine große Anzahl von Verkehrskonsolidierungsszenarien und Produktionspraktiken gesammelt. Im Jahr 2018 war Sentinel Open Source und entwickelt sich ständig weiter. Im Jahr 2019 untersuchte Sentinel weiterhin die Richtung der mehrsprachigen Erweiterung, brachte eine native C++-Version auf den Markt und führte außerdem die Unterstützung der Envoy-Clusterflusssteuerung für Service Mesh-Szenarien ein, um das Problem der mehrsprachigen Strombegrenzung im Rahmen des Dienstes zu lösen Mesh-Architektur. Im Jahr 2020 wurde die Sentinel Go-Version eingeführt und entwickelt sich weiterhin in Richtung Cloud-native.
Im Jahr 2021 entwickelt sich Sentinel zur Cloud-nativen Hochverfügbarkeits-Entscheidungscenter-Komponente 2.0 weiter. Gleichzeitig wird die native Version von Sentinel Rust eingeführt. Gleichzeitig haben wir auch Szenarien wie die Envoy WASM-Erweiterung und die eBPF-Erweiterung in der Rust-Community untersucht.
Sentinel-go-Installation
Offizielle Website-Dokumentation
package main import ( "fmt" "log" sentinel "github.com/alibaba/sentinel-golang/api" "github.com/alibaba/sentinel-golang/core/base" "github.com/alibaba/sentinel-golang/core/flow" ) func main() { //基于sentinel的qps限流 //必须初始化 err := sentinel.InitDefault() if err != nil { log.Fatalf("Unexpected error: %+v", err) } //配置限流规则:1秒内通过10次 _, err = flow.LoadRules([]*flow.Rule{ { Resource: "some_test", TokenCalculateStrategy: flow.Direct, ControlBehavior: flow.Reject, //超过直接拒绝 Threshold: 10, //请求次数 StatIntervalInMs: 1000, //允许时间内 }, }) if err != nil { log.Fatalf("Unexpected error: %+v", err) return } for i := 0; i < 12; i++ { e, b := sentinel.Entry("some_test", sentinel.WithTrafficType(base.Inbound)) if b != nil { fmt.Println("限流了") } else { fmt.Println("检查通过") e.Exit() } } }
Das obige ist der detaillierte Inhalt vonWas sind Strombegrenzung und Absicherung? Ausführliche Erläuterung der Verschlechterung der Sentinel-Strombegrenzungssicherung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!