Parece que ambos sirven para el mismo propósito. ¿Hay alguna diferencia que lo haga útil en ciertas situaciones y no en la otra?Apache Camel: ¿Procesadores y Frijoles sirven para el mismo propósito?
Respuesta
En la práctica, son muy similares, pero un procesador es más limitado que un frijol. Generalmente utilizo un procesador para casos de uso simple que simplemente interactúan con Exchange. Además, inline processors son una gran manera de interactuar sin tener que crear una clase separada.
Los frijoles proporcionan más flexibilidad y también son compatibles con un verdadero enfoque POJO. Esto le permite integrarse más fácilmente con las API existentes (solo necesita convertir las entradas/salidas para que coincidan, etc.).
frijoles también proporcionan grandes características/flexibilidad con respecto a camello enrutamiento/integración EIP, incluyendo ...
rico conjunto de bindings que le permiten enlazar rápidamente los datos desde la central a los atributos de un grano método, etc.
POJO consuming/producing te permiten interactuar con los puntos finales de una manera reutilizable
used as expressions/predicates (para la implementación POJO EIP ... filtros, etc.)
Se reduce a una cuestión de preferencia, diría yo. En general, opto por el enfoque de POJO y por eso comencé a usar frijoles para hacer mi procesamiento, pero con el tiempo me he movido lentamente a usar procesadores.
que sentía dolor en los siguientes casos:
- grano de métodos con más de un parámetro
- Tratando de obtener los datos de los parametros de cambio/el mensaje cabeceras de
sé que Camel 2.8 elimina parte del dolor de estos casos al permitir annotations in your bean que guía a Camel sobre cómo llamar a los métodos de su frijol. No quería ir por esta ruta, me sentí mal al poner anotaciones de Camel en un frijol que no debería preocuparme de que lo llame Camel.
Al final, creamos un frijol sin anotaciones, independiente del cliente, y un procesador muy delgado que extrae todo lo que necesita del camello y lo pasa a ese frijol.
Sólo mi 2 centavos - la ruta de frijol en realidad no es una mala - que va a hacer el trabajo igual de bien (especialmente en 2,8)
EDITAR
se han hecho muchas mejorasPara el uso de POJOs por parte de camello para procesar mensajes desde que se escribió esto, esta respuesta ya no es aplicable.
- 1. Apache Camel para llamadas asincrónicas
- 2. Apache Camel scripting problem
- 3. Enrutamiento condicional Apache Camel
- 4. Cómo retrasar el arranque de frijoles primavera?
- 5. Apache camel alternative in .net?
- 6. Apache Camel con clúster ActiveMQ
- 7. Lógica empresarial en procesadores Camel vs puntos finales de servicio
- 8. Apache Camel: ¿Qué marcha con los mensajes?
- 9. Administración y supervisión de rutas Apache-Camel en ServiceMix
- 10. Apache Camel - transacción en las rutas
- 11. Apache Camel: cómo almacenar la variable para un uso posterior
- 12. Diferencias entre Camel y BPEL
- 13. Carcasa Pascal o Camel Camel para código C#?
- 14. Ejecutando django y matraz en el mismo servidor apache
- 15. Cómo probar unidades de rutas de producción en Apache Camel?
- 16. Apache Camel http a rutas http (¿Es posible?)
- 17. CÓMO: Archivos de coincidencias de Apache Camel, Regex
- 18. ¿Hay problemas conocidos al usar Scala con Apache Camel?
- 19. Apache Camel: punto final "directo: inicio": ¿qué significa?
- 20. Enlazado de frijoles para JTrees
- 21. ¿Cuál es la necesidad de una interfaz de marcador cuando los atributos sirven para este propósito?
- 22. Apache Camel ftp consumidor carga los mismos archivos una y otra vez
- 23. ¿Para qué sirven las lentes /?
- 24. Múltiples procesadores y PerformanceCounter C#
- 25. ¿Para qué sirven las vistas?
- 26. ¿Para qué sirven los finalizadores?
- 27. ¿Para qué sirven los punteros?
- 28. distribuida ActiveMQ con Camel
- 29. Apache Camel: acceda al mensaje de solicitud y respuesta al final de la ruta
- 30. ¿Cuál es la diferencia entre "direct:" y to() en Apache Camel?