问题标签 [event-processor-host]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
807 浏览

c# - 事件处理器主机未收到消息

我有一个天蓝色工作人员角色,其事件处理器主机连接到天蓝色事件中心。由于某些未知原因 - 它不会收到任何消息。

日志显示它EventProcessor为每个分区打开一个 - 并且没有错误 - 但从ProcessEventsAsync未被调用。

使用服务总线资源管理器,我可以看到它在处理器关闭时接收消息,而当它启动时,它会抛出接收器打开的异常。

  • 我确实让它工作过一次,但重新启动后它没有继续工作

我不知道下一步该往哪里看 - 但是这是工人角色的代码

这是 EventProcessor 代码 - 工厂本身似乎无关紧要

0 投票
1 回答
793 浏览

java - 注册 EventProcessorHost 失败

我正在尝试使用 EventProcessorHost 在 JAVA 中使用来自 eventthub 的消息。遵循here1here2给出的步骤,但是当我运行代码时,我遇到了错误..

更多细节:

  1. 如博客中所述创建了新的存储帐户,还创建了 blob。

  2. EventProcessor 类和 ErrorNotificationHandler 类与 Microsoft 文档中提到的完全相同。

  3. 调用寄存器的代码如下...

注意:博客已弃用 EventProcessorHost 的构造函数。

在线搜索错误,我能找到的是增加存储超时,但不确定如何证明 EventProcessorHost 中存储的特定超时。任何帮助表示赞赏。

0 投票
2 回答
671 浏览

c# - 我们是否应该将 Microsoft.Azure.EventHubs.Processor 库与 .NET 框架一起使用

语境

我们目前正在使用Microsoft.Azure.ServiceBus.EventProcessorHost从 Azure Event-Hub 引入数据。我们在.NET 框架上运行,而不是在.NET Core上运行。

此 Microsoft公告(2017 年 2 月 2 日发布)表明,无论您使用哪种 .NET 运行时,更新的Microsoft.Azure.EventHubs.Processor都是未来的发展方向,因为它们将维护一个单一的代码库。

同时,最近更新的官方 Microsoft Event-Hub 示例仍然建议 .NET 框架使用较旧的库 (Microsoft.Azure.ServiceBus.EventProcessorHost)。

自发布以来,这两个库都已更新和发展。

问题

由于我们在.NET 框架上,我们应该使用哪个库?

我们是否应该迁移到更新的Microsoft.Azure.EventHubs.Processor以便从最新的开发、改进和错误修复中受益?还是旧的跟上速度?

这个问题也与新手有关,他们应该选择哪个库来开始使用 Azure Event-Hubs。

0 投票
1 回答
367 浏览

azure - IEventProcessor 处理消息两次

嗨,我正在使用事件中心以 1 秒的频率摄取数据。

我不断地将模拟数据从控制台应用程序推送到事件中心,然后存储到 SQL 数据库中。

现在已经超过 5 天了,我发现我的接收器每天都会处理两次数据,这就是我将重复记录输入数据库的原因。

由于它一天只发生一两次,所以我什至无法追踪。

到目前为止,有人会遇到这种情况吗?或者是否有可能主机可以两次处理相同的消息?还是接收器的异步行为问题?

期待帮助......

代码片段:

0 投票
1 回答
327 浏览

azure - Azure 事件处理器主机 java 库 - ReceiverRuntimeInformation 没有分区上的实际统计信息

我试图通过在接收到事件时利用 PartitionContext 提供的 ReceiverRuntimeInformation 对象来获取最后一个排队的序列号来跟踪消费者端的消费者和生产者之间的滞后。但是,ReceiverRuntimeInformation 对象没有与事件中心的特定分区相关的更新值,它返回 0。示例代码和日志输出如下:

输出:

0 投票
1 回答
1895 浏览

azure - 关于事件中心处理器中的检查点策略

我使用事件中心处理器主机来接收和处理来自事件中心的事件。为了获得更好的性能,我每 3 分钟调用一次检查点,而不是每次接收事件时调用一次:

但问题是,如果没有新事件发送到事件中心,则可能有一些事件永远不会成为检查点,因为如果没有新消息,则不会调用 ProcessEventAsync。

有什么建议可以确保所有已处理的事件都是检查点,但仍然每隔几分钟检查一次?

更新:根据 Sreeram 的建议,我将代码更新如下:

0 投票
1 回答
77 浏览

azure-webjobs - 如何在 IEventProcessor.ProcessEvents 方法中处理失败消息

该应用程序具有 IEventProcessor 的实现。当 ProcessEventsAsync 方法引发未处理的异常时,EventProcessorHost 永远不会将这些消息重新发送到正在运行的 IEventProcessor 实例。(如果托管应用程序停止并重新启动,或者租约丢失并重新获得,它将重新发送。)

当 processEventAsync 中发生异常时,只有在成功时才会设置检查点,使用此 context.CheckpointAsync() 设置检查点

0 投票
1 回答
44 浏览

azure - ProcessEventsAsync 中的延迟检查点

EventHub的IEventProcessor接口有如下方法:

我想将我从 event-hub 收到的消息聚合起来TPL.DataFlow,因为原始批次太小了。通过这样做,我将不得不检查数据流管道中某处的事件,并且显然在方法返回后很长时间才会发生。

Q.1:我可以在返回context后使用参数吗?ProcessEventsAsync那有多安全?
Q.2:有没有更好的方法来做我想做的事?

0 投票
1 回答
452 浏览

node.js - 无法在分区中设置检查点

我正在尝试使用此示例(https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-node-get-started-send),但我无法仅读取未读数据. 还有一件事我得到了两个不同的错误

1)连接ETIMEDOUT 40.112.242.0:5671

2) 更新检查点时租约丢失

在节点 js 示例中,我无法设置检查点。我也尝试过 Azure/azure-sdk-for-js。但它显示了上面列出的相同错误。

当我还运行 .netcore 示例时,它们工作正常,所以我不明白为什么节点 js 示例不能正常工作?

您能否指导我如何将此问题解决为只读未读数据和新数据?

0 投票
1 回答
166 浏览

java - 在同一事件中心注册的两个事件处理器主机

我是 Azure 服务的新手,我正在尝试学习事件中心。我想将事件中心用作跨多个消费者的先进先出队列。但是我在租赁管理方面遇到了一些问题。我已经部署了我的 eph 的两个实例,我想使用同一个消费者组。首先,我只用一个实例尝试解决方案,没关系。当我在另一台机器上部署事件处理器主机时,我看到第一个 eph 失去了连接

两个事件处理器主机从同一个消费者组读取是否正确?或者这就是问题所在?你能建议我任何想法或任何改进吗?

先感谢您!