Apache Camel:保持路由信息完全独立于Java代码

首先感谢目前参与Camel开发的人们,我很感激他们所付出的辛勤劳动。 我正在寻找一些设计建议。 架构是这样的: 我有一堆Java类,在实例化时需要相互连接并使用Apache Camel发送消息。设计约束要求我创建一个框架,使所有路由信息,生产者,消费者,端点等都应该成为camel-context.xml的一部分。 一个人应该有能力修改这样的文件并完全改变现有的路由,而不需要他可用的Java代码。(不提供Java代码,只有编译后的Jar) 例如在One setup中, Bean A - > Bean B-> Bean C-> file-> email。 在另一个 Bean B-> Bean A-> Bean C-> ftp-> file-> email 我们尝试了各种方法,但如果原始bean没有实现为Java DSL,则消息速率非常高,因为camel在第一个示例中不断调用Bean A而在第二个示例中调用Bean B(它们是源代码)。 Bean A和Bean B发起消息并且是事件驱动的。如果发生了所需的事件,bean会发出通知消息。 我的转换非常简单,我根本不需要Java DSL的强大功能。 总结一下,我有以下问题: 1)考虑到上述约束,我确保所有路由信息,包括目标地址,一切都是camel上下文文件的一部分? 2)我是否可以看一下保持路由信息完全独立于java代码的示例? 3)我如何确保Camel不会不断调用原始bean? 4)Camel是否经常只调用原始bean或它发送的任何bean。消息与整个消息队列中bean的位置无关? 我已经用尽各种方法来设置它。任何帮助,将不胜感激。     
已邀请:
阅读有关在Camel wiki页面上隐藏中间件的信息。这允许您让客户端使用接口发送/接收消息,但完全不知道Camel(根本没有使用Camel API)。 更好地考虑购买Camel in Action书并阅读第14章,其中谈到了这一点。 http://www.manning.com/ibsen/ 在Manning书籍上节省41%:Camel in Action或ActiveMQ in Action。使用代码s2941。到期6月8日。 http://www.manning.com/ibsen/     

bab

如果您考虑使用FuseESB的ServiceMix,您可能希望将路由分为两部分。 第一部分是触发路由的事件驱动程序bean。它可以将消息推送到ServiceNMR(请参阅http://camel.apache.org/nmr.html)。 另一部分将留给框架用户,使用Spring DSL。它只会听取核磁共振的信息(通过其他路线推送)并随心所欲地做任何事情。 当然,端点定义可以使用servicemix配置服务进行属性化(请参阅http://camel.apache.org/properties.html#Properties-UsingBlueprintpropertyplaceholderwithCamelroutes)     

要回复问题请先登录注册