In dieser Artikelserie stellen wir das Open Source ** Sentinel Java ** Flusskontrollprojekt von ** Alibaba ** im Vergleich zu ** Hystrix ** vor.
High Stricks war in den letzten Jahren sehr beliebt. Jetzt, da wir uns im Wartungsmodus befinden, suchen viele nach Alternativen. In diesem Artikel wird Sentinel vorgestellt, ein Open-Source-Java-Flusssteuerungsprojekt. Ich werde es vorstellen, während ich es mit Hystrix vergleiche, das mehr Menschen bekannt ist. In diesem Teil werden wir die beiden auf einer höheren Ebene vergleichen. Schauen wir uns das nächste Mal einige Codebeispiele an.
Einfach gesagt, es ist ein Leistungsschalter. Der Leistungsschalter wird aktiviert, wenn eine bestimmte Ressource weiterhin ausfällt. Anstatt weiterhin Ressourcen zu treffen, die bereits außer Betrieb sind, fängt der Leistungsschalter die Anforderung ab und gibt ein Fehlersignal zurück. Dies klingt ähnlich wie bei allen Leistungsschaltern. Sentinel bietet jedoch mehr Optionen wie Flow Shaping, Überlastschutz und Fehlertoleranz.
--Sential bietet viele Optionen für die Flusskontrolle. Benutzer können den Datenverkehr basierend auf QPS, Anzahl der Thread-Pools und Systemlast gestalten und Befehle direkt verwenden, um den Datenverkehr zu stoppen oder einen Kaltstart durchzuführen. Benutzer können auch eine Kombination verschiedener Regeln verwenden. Hystrix bietet keine umfassende Verkehrsformung.
--Sentinal bietet Fehlerisolierung und Schaltungsbremsung. Dies ähnelt Hystrix. Diese Ansätze sind jedoch unterschiedlich. --Sentinal bietet Echtzeitüberwachung. Es bietet auch ein Dashboard, das Informationen aus verteilten Systemen zusammenfasst.
Der Hauptunterschied zwischen den beiden besteht darin, wie die Trennung erreicht werden kann. Hystrix verwendet normalerweise Schottmuster, um Abhängigkeiten zu isolieren. Hystrix legt jede Abhängigkeit in einem separaten Thread-Pool ab. Der Hauptvorteil dieser Methode besteht darin, dass ein sauberer Schnitt erzielt wird. Der Nachteil ist in erster Linie der Overhead, der beim Thread-Pool-Management anfällt.
Sentinel verwendet dagegen für jede Abhängigkeit einen Zähler. Dies spart nicht nur Verwaltungsaufwand für das Thread-Pool, sondern gibt dem Benutzer auch mehr Kontrolle. Benutzer können jetzt die Granularität der Flussverschlechterung bestimmen.
In dieser Tabelle sind die Unterschiede zwischen Hystrix und Sentinel in Design und Implementierung aufgeführt.
Dies mag ein wenig überwältigend erscheinen. Benutzer werden jedoch keinen großen Unterschied in Bezug auf die Benutzererfahrung bemerken.
Sentinal eignet sich für Cloud-native Umgebungen. Es kann in andere gängige Cloud-native Lösungen integriert werden. Einer von ihnen ist Spring Cloud. Dubbo ist ein weiteres beliebtes Java-Distributions-Framework in China. Sentinal kann auch Seite an Seite mit Service-Mesh-Lösungen wie Istio und Envoy arbeiten.
Sentinal wird in Kürze als Teil des Spring Boot Frameworks veröffentlicht. Weitere Informationen finden Sie in ihrem GitHub repo.
Recommended Posts