Camel处理器中的业务逻辑与服务端点

Val*_*ddi 7 architecture soa apache-camel

在Camel路由中,我是否应该考虑将我的业务逻辑放在离散托管的bean端点中,比如消息驱动的bean或Web服务,而不仅仅是在Camel处理器中实现它?

将Camel用作中介和编排,使用Processor作为过滤器,而不是作为业务逻辑的容器,似乎更清晰地分离了关注点.但是我现在并不认为需要一个EJB容器,而且我似乎需要一个来容纳MDB.

如此清洁的架构与更小的占地面积,更少的技术 - 有没有人有这方面的想法,观点或强烈的感受?

Ben*_*Day 11

我一般用Camel来执行以下操作......

  • 任何组件集成(文件,jms,http等)
  • 实现EIP逻辑(基于内容的路由,过滤器,限制等)
  • 基于定时器的过程(使用定时器石英)
  • 异常处理(重试逻辑,错误记录/通知/排队)

否则,对于自包含的业务逻辑(尤其是遗留集成),最好使用POJO或WebServices.这提高了可测试性并使您的应用程序更加模块化等等.然后,您可以使用Camel进行以下操作......

  • 使用Processor,Bean BindingCXF与这些服务进行交互
  • 将这些服务连接到路由中
  • 管理/监控消息流,异常处理

关于长时间运行的流程,Camel可以通过各种非自愿模式/技术(JMS,CXF,轮询消费者,预定作业等)来促进这一过程,并使您可以控制线程 ...

总而言之,切割它的方法有很多种.Camel重量轻,灵活,旨在简化与现有技术的集成,而不是取代它们......祝你好运