Apache Camel Producer Consumer术语困境

时间:2014-01-22 10:27:54

标签: apache-camel

以下是关于Camel in Action book中给出的生产者和消费者的定义。

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

我的怀疑:

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

1 个答案:

答案 0 :(得分:3)

外部服务可以是,例如,外部Web服务,外部REST服务,EJB等。

消费者可能正在使用这些服务中的任何一种,或者它可能正在侦听要在文件系统上的特定位置创建的文件(或多个文件),它可能会从消息队列(JMS)消耗,等等 - 只有可用的组件和端点限制了无限的可能性。

基本上,使用apache camel,你正在设计一个消息总线(ESB),对吧?你可以这样思考 - “消费者”从外面获取东西并把它放在公共汽车上。

然后,你的信息将通过各种途径(最有可能通过EIP进行翻译和修改),然后最终它必须在现实世界中的“那里”去一些地方 - 那就是生产者做的时候这是工作。

消费者消费到公共汽车/生产者生产的公共汽车。

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

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

我希望这有帮助!