Camel - 与现有应用程序集成

时间:2012-05-25 10:58:53

标签: java apache-camel

我目前正在使用不使用camel的交易应用程序。 它主要涉及交易,进行一些处理并将细节发送到外部系统。

我们现在需要集成3个新系统,使用2个系统的FTP和1个系统的JMS。

我想在我的应用程序中使用Camel进行这些集成。我已经阅读了大量的骆驼行动,但我不知道如何开始我们的骆驼路线

基本上,我们不想过度大幅修改现有应用程序的任何部分,因为它在生产中运行良好。

在现有的应用程序中,我们生成一个交易价值对象及其来自此对象,我想开始我们的驼峰集成。 我没有数据库表或jms队列,我可以从这里开始。

我快速浏览了Camel in Action一书中有关Bean路由和远程处理的章节,但我想在继续执行任何步骤之前先让人们提出建议。 什么是这种整合的最佳方法?

由于 达明

2 个答案:

答案 0 :(得分:4)

您可以使用Camel的POJO Producing功能,该功能允许您从java bean向camel端点发送消息。如果您不需要JMS或DB,则可以使用"direct:""seda:""vm:"端点作为路径的<from>部分。

答案 1 :(得分:3)

Pojo作为Konstantin V. Salikhov说。但是,你需要确保你有一个弹簧应用程序,并用弹簧扫描你的豆子或连接它们。

“如果在Spring XML中定义bean或使用Spring组件扫描机制扫描并使用a或CamelBeanPostProcessor,那么我们会处理许多Camel注释以执行各种操作,例如注入资源或生成,使用或路由消息。“

如果此方法会在您的应用程序中添加太多更改,则可以使用ProducerTemplate并仅调用直接端点。 (或SEDA就此而言)。

此处选择协议可能很重要。直接协议是一种安全的选择,因为开销只是一种方法调用。此外,异常将通过直接端点传播,事务也是如此。由于SEDA端点是异步的(如JMS),但不具有持久性,因此在发生崩溃时,飞行数据可能会略微丢失。这可能是也可能不是问题。但是,在高负载情况下,SEDA协议会更好地进行,并使您的应用能够更好地抵抗负载峰值。