apache-camel - Apache Camel 生产者消费者术语困境

标签 apache-camel

下面是Camel in Action书中关于生产者和消费者的定义。

消费者可能正在接收来自外部服务的消息,轮询 对于某些系统上的消息,甚至创建消息本身。这条信息 然后流经处理组件,这可能是企业集成 模式 (EIP)、处理器、拦截器或其他一些自定义创建。讯息 最终发送到作为生产者角色的目标端点。一条路线可能 有许多修改消息或将其发送到另一个位置的处理组件, 或者它可能没有,在这种情况下它将是一个简单的管道。

我的疑问:

  1. 什么是外部服务?
  2. 消费者如何在生产者生成消息之前发挥作用。我的理解是,生产者生产并转换消息作为交换,以便消息与消费者的端点兼容。
  3. 为什么消费者必须做生产者的工作(即转换消息并将其再次发送给生产者?)反之亦然吗?

谢谢!

最佳答案

外部服务可以是外部 Web 服务、外部 REST 服务、EJB 等。

消费者可以从任何这些服务中消费,或者它可以监听在文件系统上的特定位置创建的一个(或多个)文件,它可以从消息队列 (JMS) 中消费,等等,等等 - 无限的可能性仅受可用组件和端点的限制。

基本上,您是在使用 apache camel 设计消息总线 (ESB),对吧?您可以这样想——“消费者”从外部世界获取东西并将其放在公共(public)汽车上。

然后,您的消息将通过各种途径(最有可能通过 EIP 在此过程中被翻译和修改),然后最终它必须到达现实世界中“外面”的其他地方 - 这就是生产者做的事情这是工作。

消费者在总线上消费/生产者在总线下生产。

通常,您不需要过多考虑端点是否作为消费者作为生产者运行 - 只需使用 .from.to 作为您需要,一切都应该从那里正常工作。

另请阅读此答案:Apache Camel producers and consumers

希望对您有所帮助!

关于apache-camel - Apache Camel 生产者消费者术语困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21280274/

相关文章:

java - 没有 maven 的 Apache Camel

java - 如何检测 Apache Camel 中断开/恢复的 JMS 连接?

java - Camel CXF JMS 连接问题

http - Camel : how to predict HTTP charchester encoding when doing conversion

spring - 将 Camel 2.1 与 Grails 1.2.1 一起使用 - 类加载问题

java - Camel Jetty 将使用 Spring Boot 端口

java - 在更改 Camel 版本时,War 未部署在 weblogic 中

web-services - Camel 和 BPEL 的区别

java - Apache Camel SFTP 配置与 Spring XML

ssl - 使用 http :conduit with https4 apache camel