2016-01-26 10 views
13

ESB ist eine traditionelle Middleware, die unter anderem in SOA-Lösungen für Routing, Nachrichtentransformation, Protokollüberbrückung verwendet wird. Eine neue Kategorie von Middleware-Lösungen, die API-Gateway, wird jetzt von mehreren Anbietern angeboten. Diese Lösungen werden allgemein als zentraler Punkt für den Zugriff auf die von einer Organisation öffentlich angebotenen REST- und SOAP-Dienste beschrieben. API-Gateway-Lösungen bieten jedoch eine Reihe typischer ESB-Funktionen.Was ist der Unterschied zwischen API Gateway und ESB?

Was sind die Unterschiede zwischen ESB und API Gateway? Wann sollte ich das eine oder andere benutzen?

Antwort

5

Ein API-Gateway ist in der Regel ein Proxy für Ihre Webdienste und bietet interessante Vorteile wie: Protokollierung, SOAP-Dienste wie REST-Dienste, Debugging-Hilfe, Tracing usw. aufrufbar. Weil das API-Gateway ist ein Sitzen zwischen dem Verbraucher und Ihren Diensten, es kann Verkehr leicht erfassen und diese Art von Dingen tun.

Ein Enterprise Service Bus (wie nServiceBus) ist so konzipiert, dass er auf einem Messaging-Protokoll (wie RabbitMQ) aufsetzt, um Funktionen bereitzustellen, die nicht oder nur schwer zu implementieren sind. sub, zum Beispiel: Datenbank gespeicherte dauerhafte Nachrichten, Wiederholungslogik, Listener-Kapselung, einfachere Möglichkeiten zum Abonnieren von Nachrichten und Sagas. Sie können das Messaging-Protokoll verwenden, ohne einen ESB zu verwenden, aber nicht umgekehrt. Beispielsweise können Sie RabbitMQ ohne nServiceBus verwenden.

+1

Der Servicebus muss nicht zwingend auf einer Messagingimplementierung sitzen. Es ist ein ziemlich überladener Begriff. – JoG

+0

Sicher ... Aber die Frage war speziell auf ESB gerichtet, nicht Messaging. –

3

Da API-Gateways und ESBs in der Lage sind, Service-Proxys zu bedienen, können sie, wenn man nur die Vermittlungs- und Transformationsfunktionen der beiden Tools in Betracht zieht, identisch erscheinen. Der Hauptunterschied in einem API-Gateway zu mir liegt in dem speziellen Zweck, für den es gezüchtet wird. Ein API-Gateway sollte in der Lage sein, als Eingangspunkt für Ressourcen zu dienen, die von ihm angeboten werden, abgesehen von der Bereitstellung von Transformations- und einigen Routing-Fähigkeiten. Außerdem sollten sie in der Lage sein, Zugriffssteuerungs- und Drosselungsaspekte an andere spezialisierte Komponenten zu delegieren, wobei sie in der Lage sein sollten, das gewünschte Verhalten zu garantieren. Da ein API-Gateway als Teil einer API-Verwaltungslösung kommen würde, werden alle diese Funktionen von OOTB unterstützt.

Es kann möglich sein, ein ähnliches Verhalten für Service-Proxies mit einem ESB und anderen externen Komponenten oder Software zu erreichen. Da ESBs jedoch dazu gedacht sind, einen breiteren Satz von Integrationsanforderungen zu erfüllen, und sie nicht auf API-Management spezialisiert sind, wären Anwendungsfälle, die sie erreichen, viel schwieriger zu tun.