【问题标题】:Apache Camel: Keeping routing information completely independent of the Java CodeApache Camel:保持路由信息完全独立于 Java 代码
【发布时间】:2011-04-20 17:39:45
【问题描述】:

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

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

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

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

例如在一个设置中, Bean A ->Bean B->Bean C->文件->电子邮件。 在另一个 Bean B->Bean A->Bean C->ftp->文件->email 我们尝试了各种方法,但是如果原始 bean 没有实现为 Java DSL,消息率非常高,因为骆驼在第一个示例中不断调用 Bean A,在第二个示例中调用 Bean B(它们作为来源)。

Bean A 和 Bean B 发起消息并且是事件驱动的。如果发生所需的事件,bean 会发出通知消息。

我的转换非常简单,根本不需要 Java DSL 的强大功能。 总而言之,我有以下问题:

1) 考虑到上述限制,我是否确保所有的路由信息​​,包括目的地址,都是骆驼上下文文件的一部分?

2) 有没有可以让路由信息完全独立于 java 代码的示例?

3) 我如何确保 Camel 不会不断调用原始 bean?

4) 无论 bean 在整个消息队列中的位置如何,Camel 是否会不断调用原始 bean 或它发送和消息的任何 bean?

我已经用尽了各种方法来设置它。任何帮助将不胜感激。

【问题讨论】:

    标签: apache-camel apache-servicemix enterprise-integration


    【解决方案1】:

    阅读有关在 Camel wiki 页面上隐藏中间件的信息。这允许您让客户端使用接口来发送/接收消息,但完全不知道 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/

    【讨论】:

    • 谢谢,拿到书了。第14章看起来很有趣。如果我还有任何问题,会再次打扰您。
    • 我想我应该放弃在 Fuse Servicemix 中执行这个的想法。第 14 章中的配置仅适用于 camel:run。部署到servicemix时无法执行。
    • 您仍然可以通过将所有 Java 代码放在一个包中并部署它来使用 ServiceMix,同时将路由逻辑外部化到 Spring/Blueprint 文件中并将该文件本身放入 {smx_home }/etc 目录。该文件将作为一个包启动。
    【解决方案2】:

    如果您考虑使用 FuseESB 的 ServiceMix,您可能希望将您的路由分成两部分。

    第一部分是触发路由的事件驱动 bean。它可以将消息推送到 ServiceNMR(请参阅 http://camel.apache.org/nmr.html)。

    另一部分将留给框架用户,使用 Spring DSL。它只会听 NMR 上的消息(通过另一条路线推送),然后用它做任何他们想做的事情。

    当然端点定义可以使用 servicemix 配置服务进行属性化(参见http://camel.apache.org/properties.html#Properties-UsingBlueprintpropertyplaceholderwithCamelroutes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多