我目前正在使用不使用camel的交易应用程序。 它主要涉及交易,进行一些处理并将细节发送到外部系统。
我们现在需要集成3个新系统,使用2个系统的FTP和1个系统的JMS。
我想在我的应用程序中使用Camel进行这些集成。我已经阅读了大量的骆驼行动,但我不知道如何开始我们的骆驼路线
基本上,我们不想过度大幅修改现有应用程序的任何部分,因为它在生产中运行良好。
在现有的应用程序中,我们生成一个交易价值对象及其来自此对象,我想开始我们的驼峰集成。 我没有数据库表或jms队列,我可以从这里开始。
我快速浏览了Camel in Action一书中有关Bean路由和远程处理的章节,但我想在继续执行任何步骤之前先让人们提出建议。 什么是这种整合的最佳方法?
由于 达明
答案 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协议会更好地进行,并使您的应用能够更好地抵抗负载峰值。