rest - ¿Cuál es la diferencia entre API Gateway y ESB?
soa api-management (2)
Dado que tanto las puertas de enlace API como los ESB son capaces de servir proxies de servicio, si uno solo considera las capacidades de mediación y transformación de las dos herramientas, pueden parecer idénticas. La diferencia clave en una puerta de enlace API para mí radica en el propósito específico para el que se ha creado. Una puerta de enlace API debería ser capaz de actuar como punto de entrada a los recursos destacados por él, además de proporcionar transformación y algunas capacidades de enrutamiento. Además, deben poder delegar el control de acceso y los aspectos de regulación a otros componentes especializados, utilizándolos para poder garantizar el comportamiento deseado. Como una puerta de enlace API vendría como parte de una solución de administración de API, todas estas capacidades serán compatibles con OOTB.
Es posible lograr un comportamiento similar para los servidores proxy de servicio utilizando un ESB y otros componentes o software externos. Sin embargo, dado que los ESB deben utilizarse para cumplir con un conjunto más amplio de requisitos de integración, y no están especializados para los casos de uso de la administración de API, sería mucho más difícil hacerlo.
ESB es un middleware tradicional utilizado en soluciones SOA para enrutamiento, transformación de mensajes, puente de protocolo, entre otras cosas. Varios proveedores ofrecen ahora una nueva categoría de soluciones de middleware llamada API Gateway. Estas soluciones se describen comúnmente como el punto central para acceder a los servicios REST y SOAP ofrecidos públicamente por una organización. Sin embargo, las soluciones de la puerta de enlace API parecen ofrecer un subconjunto de características típicas de ESB.
Entonces, ¿cuáles son las diferencias entre ESB y API Gateway? ¿Cuándo debo usar uno o el otro?
Una puerta de enlace API es algo que normalmente actúa como un proxy para sus servicios web y proporciona un valor interesante, como: registro, servicios de SOAP que se pueden llamar como servicios REST, ayuda de depuración, seguimiento, etc. Debido a que la puerta de enlace API es un punto intermedio El consumidor y sus servicios pueden capturar fácilmente el tráfico y hacer este tipo de cosas.
Un Enterprise Service Bus (como nServiceBus) está diseñado para ubicarse sobre un protocolo de mensajería (como RabbitMQ) para darle una funcionalidad que no viene con (o una funcionalidad que es difícil de implementar) la mensajería básica o pub-sub, por ejemplo : La base de datos almacenó mensajes duraderos, reintento de la lógica, encapsulación de oyentes, formas más fáciles de suscribirse a los mensajes y sagas. Puede usar el protocolo de mensajería sin usar un ESB pero no al revés. Por ejemplo, puede usar RabbitMQ sin usar nServiceBus .