Camel-Twitter直接与基于事件的区别

时间:2013-01-28 21:50:58

标签: java twitter apache-camel esb

我正在考虑使用camel-twitter(Apache Camel的Twitter组件:http://camel.apache.org/twitter.html)。我想使用Twitters Streaming API。

事件直接类型之间的差异是什么?

对于使用事件驱动的消费者,是否有人示例代码? (到目前为止我只发现了这个https://fisheye6.atlassian.com/browse/camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchEventTest.java

3 个答案:

答案 0 :(得分:1)

direct表示您执行明确的直接调用以触发twitter。例如,使用Camel中的直接组件来调用twitter的路由。

事件意味着事件驱动的消费者,您可以通过Twitter对事件做出反应,例如在搜索中找到的新推文等。

例如,我们还有这个websocket twitter示例:http://camel.apache.org/twitter-websocket-example.html

答案 1 :(得分:1)

请记住,Streaming API不能与直接端点一起使用 - 仅支持事件和轮询。

从API使用的角度来看,事件和投票工作相同。打开并维护单个流侦听器。速率限制注意事项没有区别。

唯一的区别是事件端点在收到每个消息后立即发送1个事件。轮询会对收到的消息进行排队,并在每次轮询时将其释放。

因此,差异纯粹是它们如何在Camel中传递。关于API,两个流端点都是相同的。

答案 2 :(得分:0)

Direct类型告诉消费者/生产者每次以某种方式激活端点时它将连接到Twitter。假设您想使用保存在数据库中的计划在Twitter上进行搜索:

  1. 使用消耗调度数据的JDBC / JPA端点
  2. 根据数据库中的计划数据动态创建和注册Quartz端点
  3. 将Quartz端点配置为向Direct Twitter端点发送消息,以便在此时进行搜索
  4. 您将始终被评为。无论您使用Streaming,Direct还是Polling。 如果您正在使用Streaming,请从Twitter开发人员中心阅读此FAQ

相关问题