Apache Camel生产者消费者术语困境

3
以下是《Camel实战》一书中有关生产者和消费者的定义。
消费者可以从外部服务接收消息、轮询某个系统以获取消息,甚至自己创建消息。然后,该消息通过处理组件流动,该组件可以是企业集成模式(EIP)、处理器、拦截器或其他自定义创建的组件。最终将消息发送到扮演生产者角色的目标端点。路由可能有许多处理组件来修改消息或将其发送到另一个位置,也可能没有处理组件,在这种情况下它将是一个简单的管道。
我的疑问:
1.什么是外部服务?
2.在生产者生成消息之前,消费者是如何发挥作用的。我的理解是:生产者生成并转换消息以使消息与消费者的端点兼容。
3.为什么消费者必须执行生产者的工作(即转换消息并将其重新发送给生产者)?难道不应该反过来吗?
谢谢!
1个回答

3
一个外部服务可以是外部Web服务、外部REST服务、EJB等等。
消费者可以从任何这些服务中消费,或者它可以监听文件(或文件)在文件系统的特定位置被创建,它可以从消息队列(JMS)中消费等等——只有可用的组件和端点才限制了无限的可能性。
基本上,使用Apache Camel,你正在设计一个消息总线(ESB),对吧?你可以这样想——"消费者"从外部世界获取东西并将其放在总线上。
然后,你的消息将通过各种路由(最有可能通过EIP进行翻译和修改)最终到达“外面”的某个地方——那就是生产者的工作。
消费者将信息放到总线上/生产者从总线上取出信息。
通常,你不需要太多考虑一个端点是作为生产者还是消费者运行——只需根据需要使用".from"和".to"即可,一切都应该正常工作。
还可以阅读这篇答案:Apache Camel producers and consumers 希望这能帮到你!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接