企业集成模式
企业集成模式
Apache ActiveMQ Classic 5.0 及更高版本完全支持 企业集成模式(来自 Gregor Hohpe 和 Bobby Woolf 编写的优秀书籍),通过 Apache Camel 库 实现。
您可以轻松地将任何受支持的 企业集成模式 添加到 ActiveMQ Classic(在 JMS 客户端或代理程序进程中)以支持智能路由、转换和许多其他强大的模式。当然,您也可以将 Camel 库 直接嵌入到您的应用程序中,例如通过 Spring。
这也意味着您可以将所有 Camel 组件 整合到 ActiveMQ Classic 中,以便您可以轻松地与 CXF、文件、JBI、JPA、邮件、MINA、Quartz、XMPP 和 许多其他协议和传输! 进行集成。
在 ActiveMQ Classic Broker 中使用 EIP
代理程序的 activemq.xml
文件已配置为支持 Camel;您只需自定义路由规则。
使用 Java 代码编写 EIP 规则
要使用 Java 代码编写 EIP 路由规则,只需将您的类放在类路径上(例如在 activemq/lib/myroutes/foo.jar 中)。然后,为了让 Camel 找到您的路由,您需要编辑 activemq.xml,以便 packages 属性指向要查找的包名称(或父包名称)。
例如,如果您的所有路由都在 org.acme.cheese
包中,例如 org.acme.cheese.whatnot.MyRouter
,那么您可以将 XML 编辑为…
<camelContext xmlns="https://activemq.apache.org/camel/schema/spring">
<package>org.acme.cheese</package>
</camelContext>
使用 XML 编写 EIP 规则
要使用 XML,它更简单,因为您只需使用 Camel 的 Spring XML 格式 将任何路由规则嵌入到 <camelContext>
元素中。请注意,XML 比 Java DSL 更冗长,但部署起来稍微简单一些。例如,对于一个微不足道的路由…
<camelContext xmlns="https://activemq.apache.org/camel/schema/spring">
<route>
<from uri="activemq:com.acme.MyQueue"/>
<to uri="activemq:com.acme.SomeOtherQueue"/>
</route>
</camelContext>
在 JMS 客户端中使用 EIP
您可以直接从 JMS 客户端使用 Camel 端点,以下列 JMS 目标之一,具体取决于您希望它使用的 JMS API
然后,您可以在发送或接收消息时像使用任何其他 JMS 目标一样使用此目标!这意味着,通过仅更改 Destination 对象,您就可以从 JMS 代码中使用 大量 Camel 组件!