【问题标题】:Camel: Implementing Polling and Non-Polling Consumer within the same componentCamel:在同一个组件中实现轮询和非轮询消费者
【发布时间】:2014-03-10 04:17:35
【问题描述】:
我正在实现我自己的自定义组件,我发现我需要为消费者提供两个用例:
- 第一个是尝试每隔一段时间获取 N 条可用消息(轮询消费者)
- 第二个是订阅消费者,在消息可用时获取消息。
我的主要问题是是否可以实现这两种类型。我一直在尝试编写一些代码,但是如果您正在开发PollingConsumer,您似乎无法实现另一种类型。另外,如果可能的话,是否有任何关于如何执行此操作的示例、文章或指南?我一直在寻找它,但没有任何结果。
谢谢!
【问题讨论】:
标签:
java
apache-camel
consumer
【解决方案1】:
Camel 中有两种消费者类型(例如来自 EIP 书籍)
骆驼路线中使用的是前者。后者用于显式使用或使用 ConsumerTemplate 时使用接收方法。
Camel 组件能够开箱即用地使 Consumer 适应 PollingConsumer。
所以这取决于你是否想构建一个用于路由的 Camel 组件,你可以只创建一个消费者。并让它能够同时进行轮询和订阅。获得数据后,创建一个 Exchange 并调用处理器对其进行路由。
有关文档,请查看 Camel 网站和/或 Camel in Action 手册中的第 11 章,其中介绍了创建自定义组件。