apache-camel - Apache Camel : Keeping routing information completely independent of the Java Code

标签 apache-camel apache-servicemix enterprise-integration

首先感谢目前参与Camel开发的人们,我感谢他们所付出的辛勤工作。

我正在寻找一些设计建议。

架构是这样的: 我有一堆 Java 类,在实例化时需要相互连接并使用 Apache Camel 发送消息。设计约束要求我创建一个框架,使所有路由信息、生产者、消费者、端点等都应该成为camel-context.xml的一部分。

个人应该有能力修改这样的文件并完全改变现有的路线,而无需提供Java代码。(不会提供Java代码,只提供编译后的Jar)

例如,在一个设置中, Bean A ->Bean B->Bean C->文件->电子邮件。 在另一个 Bean B->Bean A->Bean C->ftp->文件->电子邮件 我们尝试了各种方法,但是如果原始 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 页面上隐藏中间件的信息。这允许您让客户端使用接口(interface)来发送/接收消息,但完全不知道 Camel(根本不使用 Camel API)。

最好考虑购买《Camel in Action》一书并阅读第 14 章,其中讨论了这一点。 http://www.manning.com/ibsen/

购买 Manning 书籍可节省 41%:Camel in Action 或 ActiveMQ in Action。使用代码 s2941。 10 月 6 日到期。 http://www.manning.com/ibsen/

关于apache-camel - Apache Camel : Keeping routing information completely independent of the Java Code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3854270/

相关文章:

apache-camel - Camel 简单表达式语言-如何动态获取属性值

java - Apache camel 同时处理两个 csv 文件

java - 加载 spring camel 上下文时出错(类型不匹配)

java - "Error executing command: No feature matching camel-sql-orders/0.0.0"

jdbc - ClassNotFoundException : com. 使用服务组合时找不到 mysql.jdbc.Driver

osgi - Apache Karaf 与 Servicemix

java - 使用 log4j 将 Camel 交换主体记录为字符串

java - Camel CBR 和 POJO 属性(property)检查

java - Camel Splitter 产生 NotifyBuilder 看到的完成交换数量不正确?