【问题标题】:Camel-Twitter difference between direct and event-basedCamel-Twitter 直接和基于事件的区别
【发布时间】:2013-01-28 21:50:58
【问题描述】:

我正在考虑使用 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

【问题讨论】:

    标签: java twitter apache-camel esb


    【解决方案1】:

    direct 表示您执行显式直接调用以触发 twitter。例如使用 Camel 中的直接组件通过 twitter 调用路由。

    事件是指事件驱动的消费者,您可以让 Twitter 对事件做出反应,例如在搜索中发现的新推文等。

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

    【讨论】:

    • 这么直接是对 Twitter API 的一次调用,而事件使用 Streaming API?问的原因是,我想知道我是否会遇到速率限制问题。
    【解决方案2】:

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

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

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

    因此,差异纯粹在于它们在 Camel 内部的交付方式。就 API 而言,两个流式处理端点是相同的。

    【讨论】:

      【解决方案3】:

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

      1. 使用消耗调度数据的 JDBC/JPA 端点
      2. 根据数据库中的调度数据动态创建和注册 Quartz 端点
      3. 配置您的 Quartz 端点以向您的 Direct Twitter 端点发送消息以在此时进行搜索

      您将永远被评分。无论您使用流式传输、直接传输还是轮询。 如果您正在使用 Streaming,请阅读来自 Twitter 开发者中心的 FAQ

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-28
        • 1970-01-01
        • 1970-01-01
        • 2016-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多