¿Cuál es la diferencia entre un sistema RPC, como Twitter Finagle, y un Enterprise Service Bus, como Mule? ¿Qué tipo de problemas son buenos para resolver?Diferencia entre el sistema RPC y Enterprise Service Bus
Respuesta
voy a tratar de responder a esta como una explicación suave, en lugar de una avería técnica de características:
Se puede decir que Finagle es una biblioteca de mensajería asíncrona que permite que los servicios se conecten entre sí libremente (sin estar estrechamente ligados a los estándares de integración del sistema arquitectónico) al tiempo que admiten múltiples protocolos.
Desde el Finagle página web:
Finagle es una pila de red para la JVM que se puede utilizar para construir asíncrona llamada a procedimiento remoto (RPC) de los clientes y servidores en Java, Scala, o cualquier lenguaje de JVM-organizada . Finagle proporciona un amplio conjunto de herramientas independientes del protocolo.
Un Enterprise Service Bus (ESB), por otro lado, es una arquitectura de mensajería asíncrona que normalmente cumple con los estándares y protocolos de la industria. Un ESB promueve un sistema donde el flujo de mensajes es controlado y enrutado entre sistemas, y donde los servidores pueden registrar su servicio y los clientes pueden registrar qué mensajes les interesan. Los servicios ofrecidos por los servidores pueden registrarse y versionarse.
Por lo general, encontrará que Finagle se usa en algún lugar entre un sitio web y servicios de back-end. Pero, normalmente encontrará un ESB dentro de una gran empresa, donde es responsable de integrar sistemas como finanzas, soporte, ventas, etc.
Ambas soluciones ofrecen mensajería asíncrona y almacenamiento en memoria intermedia para varias extensiones, pero no están diseñadas para resolver el el mismo problema. Para ESB, probablemente pienses 'estricto, empresarial', pero para Finagle probablemente pienses 'flexible, web'.
Esperanza esto ayuda
Actualización:
No del todo relacionado, pero si usted está explorando este espacio, me gustaría ver Kafka estos días.
Tanto resolver problemas completamente diferentes:
- Un ESB es un middleware intermediación que proporciona transformación de mensaje y de encaminamiento, de adaptación de protocolos y otras operaciones de valor añadido (como orquestación, entrega garantizada, filtrado idempotente ...) . Se ubica entre sus consumidores y proveedores de servicios y de forma transparente (es decir, sin ningún cambio en el consumidor o proveedor) proporciona sus diferentes características.
- Un sistema RPC proporciona tecnologías de cliente y servidor para realizar operaciones RPC.
RPC y ESB son dos patrones arquitectónicos. Si bien RPC suele ser una solicitud-respuesta y de naturaleza síncrona, un ESB trabaja sobre el concepto de mensajería (explicación simplificada) y de naturaleza asincrónica. ESB es la base de cualquier implementación de SOA. ESB permite el acoplamiento flojo promoviendo así una verdadera agilidad. Un ejemplo simplificado desde la perspectiva de implementación es el siguiente:
Un servicio web es un RPC típico. El consumidor está estrechamente vinculado al productor y cualquier cambio en el contrato por parte del productor requerirá cambios en el lado del consumidor.
En ESB, el consumidor del servicio no invoca directamente al productor del servicio. Simplemente coloca el mensaje en el bus y, de acuerdo con las reglas (mediador), el productor del servicio apropiado lo manejará. Si el consumidor del servicio y el productor del servicio hablan en diferentes formatos, ESB ofrece la posibilidad de realizar la transformación (como formatear el código postal como xxxxx-xxxx, dividir el nombre en nombre y apellido, etc.).
Esto es solo una explicación simplificada. Para obtener más información, consulte los siguientes enlaces:
- 1. Enterprise Service Bus Terminology
- 2. Enterprise Service Bus, .NET Service Bus, NServiceBus y las ruedas del bus
- 3. ¿Diferencia entre la integración de WebLogic y Oracle Service Bus?
- 4. Implementación de ESB (Enterprise Service Bus) en un lenguaje funcional
- 5. Enterprise Service Bus uso del mundo real o ejemplos
- 6. Azure Service Bus Escalabilidad
- 7. Azure Service Bus velocidad
- 8. Service Bus - ¿Estoy siendo tonto?
- 9. Diferencia entre sistema y shell_exec
- 10. Diferencia entre mensaje de bus y intermediario de mensajes
- 11. ¿Cuál es la diferencia entre JMS/JAXM/JAX RPC/Web Service/JAX-WS?
- 12. Diferencia entre Java Bean y Enterprise Java Beans?
- 13. ¿Hay alguna diferencia entre RPC e IPC?
- 14. diferencia entre WCF Services y Web Services y REST Service
- 15. ¿Cuál es la diferencia entre XML-RPC y SOAP?
- 16. Scaling SignalR con Windows Azure Service Bus
- 17. ¿Cuál es la diferencia entre Java RMI y RPC?
- 18. Diferencia entre "sistema" y "ejecutivo" en Linux?
- 19. nServiceBus vs Mass Transit vs Rhino Service Bus vs otro?
- 20. Ver el contenido de una cola de Azure Service Bus
- 21. ¿Cuál es la diferencia entre Gateway y Service Activator?
- 22. Azure Service Bus - Desafío de rendimiento de comunicación bidireccional
- 23. Diferencia entre WCF Service, WCF RIA Services y WCF Data Service
- 24. Qt y Boost RPC
- 25. Diferencia entre gwt, gwt-rpc, ext-gwt, smart gwt
- 26. nServiceBus, Rhino Service Bus, MassTransit: videos, demostraciones, recursos de aprendizaje
- 27. Ruby, diferencia entre exec, sistema y% x() o Backticks
- 28. Diferencia entre transacción y TransactionScope
- 29. XML-RPC C# y Python RPC Server
- 30. Diferencia entre ** y * en concordancia global (.gitignore)
¿Quieres crear Finagle como una etiqueta, no tengo los privilegios. – Jack
Seguro: hecho. –