Vergleich von Alibabas Open Source Sentinel Java Flow Control-Projekt und Hystrix

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.

image.png

Was ist Sentinel?

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.

Geschichte von Sentinel

Wofür ist Sentinel?

image.png

--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.

image.png

--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.

image.png

Was ist der Unterschied zwischen Sentinel und Hystrix?

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.

image.png

Dies mag ein wenig überwältigend erscheinen. Benutzer werden jedoch keinen großen Unterschied in Bezug auf die Benutzererfahrung bemerken.

Ökosystem

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.

Verweise

Sentinal wird in Kürze als Teil des Spring Boot Frameworks veröffentlicht. Weitere Informationen finden Sie in ihrem GitHub repo.

Recommended Posts

Vergleich von Alibabas Open Source Sentinel Java Flow Control-Projekt und Hystrix
Generieren Sie den Quellcode aus der JAR-Datei mit der JD-GUI des Java Decompiler-Projekts
Vergleich zwischen Java und Swift (1) Quellcodeverwaltung / Umfang / Variablen
Steuern Sie den Spring Batch-Verarbeitungsablauf mit JavaConfig.
Java-Versionsverwaltung mit SDKMAN
[Java] Zusammenfassung der Steuerungssyntax
Vergleich der WEB-Anwendungsentwicklung mit Rails und Java Servlet + JSP