【问题标题】:Azure Event Hub Listening EventsAzure 事件中心侦听事件
【发布时间】:2020-12-05 15:49:58
【问题描述】:

阅读事件中心文档并创建一个简单的生产者-消费者示例

链接 -> https://docs.microsoft.com/en-us/javascript/api/overview/azure/event-hubs-readme?view=azure-node-latest

我想知道在生产应用程序中这将如何工作。原因是在当前的实现中,监听了一段特定的时间,然后连接就关闭了。

我们是否应该将请求发送到特定的 REST 端点并在生产者完成后激活侦听器?

【问题讨论】:

    标签: javascript azure azure-eventhub


    【解决方案1】:

    您说得对,在大多数生产场景中这不起作用。最好是在应用程序的生命周期内保持监听器打开。在大多数情况下,当触发应用程序重新启动时,处理应在继续时从最后一个检查点恢复。该示例未涵盖此内容。

    来自docs

    对于大多数生产场景,我们建议您使用事件处理器客户端来读取和处理事件。处理器客户端旨在提供强大的体验,以高性能和容错方式跨事件中心的所有分区处理事件同时提供检查其进度的方法。事件处理器客户端可以在给定事件中心的消费者组的上下文。当实例对组可用或不可用时,客户端将自动管理工作的分配和平衡。

    Here 是结合检查点处理事件的示例。出于演示目的,监听器会在一段时间后停止。只要进程没有停止,您就必须修改代码才能运行。

    如果您要发送连续的事件流,则检查点很重要。如果侦听器在一段时间内不可用,您确实不想从第一个事件的开始或仅从新事件开始恢复处理。相反,您将希望从最后知道的已处理事件开始。

    【讨论】:

    • 其实我已经实现了一个类似的例子。你指的是什么样的修改?每 X 秒运行一次代码?
    • 不,尽可能长时间地运行代码。例如一个连续运行的 nodejs 服务器。
    • 所以我需要创建一个while循环吗?这不会是有效的吧? ——
    • 只要订阅和消费者客户端未关闭,您将继续接收事件。因此,只需从共享的示例代码中删除关闭订阅和消费者客户端的代码,就可以开始了。
    猜你喜欢
    • 2016-04-12
    • 2021-05-22
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 2021-09-28
    • 2011-07-25
    相关资源
    最近更新 更多