和Apache Camel集成

Apache Camel 是一个路由和处理消息的工具,带有在 描述的企业集成模式的工具。

Moqui框架有一个Message Endpoint给Camel(MoquiServiceEndpoint),将Camel绑定到Service Facade。这允许服务(用type=camel)用MoquiServiceConsumer把服务调用作为消息发送给Camel。此endpoint也包括一个消息生产者(MoquiServiceProducer)在Camel路由字符串中作为moquiservice可用。

这是来自ExampleServices.xml文件的一些Camel服务例子:

<service verb="localCamelExample" type="camel"
 location="moquiservice:org.moqui.example.ExampleServices.targetCamelExample">
 <in-parameters><parameter name="testInput"/></in-parameters>
 <out-parameters><parameter name="testOutput"/></out-parameters>
</service>
<service verb="targetCamelExample">
 <in-parameters><parameter name="testInput"/></in-parameters>
 <out-parameters><parameter name="testOutput"/></out-parameters>
 <actions>
 <set field="testOutput" value="Here's the input: ${testInput}"/>
 <log level="warn"
 message="targetCamelExample testOutput: ${result.testOutput}"/>
 </actions>
</service>

当你调用localCamelExample服务时,它通过Apache Camel调用targetCamelExample。这是一个非常简单的使用服务和Camel的例子。关于用Camel可以做的许多事情,组件参考是个非常好的地方。

一般的想法是你可以:

  • 从种类繁多的源(文件轮询、收到的HTTP请求、JMS消息和许多其他的)获取消息数据
  • 转换消息(支持的格式包括XML、CSV、JSON、EDI等)
  • 运行自定义表达式(甚至是Groovy)
  • 分拆、合并、路由、过滤、装饰或应用任何其他的EIP工具
  • 发送消息到端点

Camel是一个非常灵活和功能丰富的工具,所以这里不再冗述,推荐这些书:

  • Bilgin Ibryam 的 《Instant Apache Camel Message Routing》 :这是一本快速介绍,将让你迅速获取很多很酷的camel的工具材料
  • Scott Cranton 和 Jakub Korab 的 《Apache Camel Developer's Cookbook》 : 有上百个关于使用Camel的提示和例子
  • Claus Ibsen 和 Jonathan Anstey 的 《Camel in Action》 :关于Apache Camel的经典数据。覆盖了一般的概念,各种内部细节,如何应用不同的EIP,和许多组件的总结。此书的网站页有大量有用的在线资源的链接。

results matching ""

    No results matching ""