首页 文章

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

提问于
浏览
2

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

eventdirect 之间的 difference 是什么?

对于 usage of the event-driven consumer ,有人有 example code 吗? (到目前为止我才找到这个https://fisheye6.atlassian.com/browse/camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchEventTest.java

3 回答

  • 1

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

    • 使用消耗调度数据的JDBC / JPA endpoints

    • 根据数据库中的调度数据动态创建和注册Quartz endpoints

    • 将Quartz endpoints 配置为向Direct Twitter endpoints 发送消息,以便在此时进行搜索

    您将被评为永远 . 无论您使用Streaming,Direct还是Polling . 如果您正在使用Streaming,请从Twitter开发人员中心阅读此FAQ

  • 1

    direct意味着你做一个明确的直接调用来触发twitter . 例如,使用Camel中的直接组件来调用twitter的路由 .

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

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

  • 0

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

    从API使用的角度来看,事件和轮询都工作 identically . 打开并维护单个流侦听器 . 速率限制注意事项没有区别 .

    唯一的区别是事件 endpoints 在收到每个消息后立即发送1个事件 . 轮询将收到的消息排队,并在每次轮询时释放它们 .

    所以,差异纯粹是它们如何在Camel中传递 . 对于API,两个流 endpoints 都是相同的 .

相关问题