问题标签 [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 投票
2 回答
271 浏览

azure - Azure Eventhub / 事件处理器主机:分区未按预期工作

我们现在正在开发一个实现和使用 Azure Eventhub 的项目。我们使用事件处理器主机来处理来自 Eventhub 的数据。我们有 32 个分区分布在 3 个节点上,并且想知道事件处理器主机如何将分区分布和平衡到接收器/节点上——尤其是在使用分区键时。

来自所有 4 位客户的所有数据

我们目前有 4 个不同的客户(蓝色、橙色、紫色和浅蓝色),它们向我们发送不同大小的数据。如您所见,左侧的蓝色客户发送了大约。132k 串数据,而右边的浅蓝色客户只发送 28 个。我们的理论是,给定基于客户的分区键(颜色标识),我们会看到客户数据只会放在一个节点中。相反,我们可以看到数据以某种方式均匀分布在 3 个节点上,如下所示:

节点 1:

节点 1

节点 2:

节点 2

节点 3:

节点 3

关于分区键的使用方式,我们是否有误解?从我们在文档中读到的内容来看,当我们不指定分区键时,将使用“循环”方法——但即使使用分区键,它也会以某种方式均匀分布它们。我们是否以某种方式对节点施加了压力——一个蓝色客户拥有大量数据,而另一个客户几乎一无所有?或者发生了什么?

为了可视化我们的理论,我们绘制了以下内容: 可能发生了什么

那么我们是不是用蓝色客户强调顶部节点,最终必须将分区移动到中间节点?

0 投票
1 回答
202 浏览

azure - 所有实例均未在 Azure 应用服务中运行

我正在使用 Azure App Service,它托管使用EventProcessorHost. 我已经分配了 6 个实例(手动缩放)来运行。我检查了应用服务中的指标(CPU 时间),发现只有 5 个实例正在运行。

对于不同的指标,我得到了不同的实例计数。 Data In指标显示 6 个实例,而CPU Time指标显示 5 个实例。我很困惑。请建议。

在此处输入图像描述 在此处输入图像描述 问候, 阿米特·阿格拉瓦尔

0 投票
0 回答
1029 浏览

azure - 使用 EventProcessorHost 时,事件中心中的传出消息多于传入消息

我正在使用 Azure 事件中心。来自事件中心的传出消息由应用程序使用EventProcessorHost. 事件中心有一个消费者组,即$Default. 我看到传出消息不仅仅是传入消息。不知道为什么传出多于事件中心的传入。

在此处输入图像描述

0 投票
1 回答
732 浏览

events - 如何在 Azure 事件中心中仅读取一次事件

我只想从 Azure 事件中心读取一次事件,以便该事件只处理一次。但是在读取这些事件时,在所有分区中都会得到相同的事件。

Tech Stack - Spring boot 通过以下方式读取事件

谢谢。

0 投票
1 回答
102 浏览

azure - Microsoft.Azure.EventHubs.Processor 中的异常导致 CPU 阻塞

我们有一个使用“Microsoft.Azure.EventHubs.Processor”的网络作业。在连续运行超过 1 个月没有任何问题后,它突然开始抛出异常。这导致CPU阻塞。见图表。我们不得不重新启动 Web 作业以降低 CPU。

  • System.Net.Sockets.SocketException :无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满
  • Microsoft.Azure.Storage.StorageException:指定的租约 ID 与 blob 的租约 ID 不匹配。

在此处输入图像描述

有没有办法处理上述异常。即使我们在 ProcessEventsAsync 方法中处理异常,我们也没有捕获这些异常。我们在这里缺少什么?我们如何确保它不会再次发生?

0 投票
1 回答
94 浏览

.net - 为 EventProcessorHost 实现 ILeaseManager

在我正在进行的项目中,我不想使用 Azure 存储来管理我的偏移量和检查点,并计划使用数据库方法来存储它们。我正在使用 EventProcessor 从事件中心读取事件,并且我知道我可以创建自己的实现ILeaseManagerICheckpointManager实现这一点。我对 ICheckpointManager 的工作原理有很好的理解,但我找不到任何有用的指南来帮助自定义实现 ILeaseManager。事实上,我只需要 ILeaseManager 的最小实现,因为我现在只使用一个分区。当我运行我的应用程序时,我收到一个错误,因为 CreateLeaseIfNotExistAsync 没有实现,我不知道如何根据这个问题来实现它。

0 投票
1 回答
197 浏览

azure - 如果 Azure Function App 在消费计划中缩减到 0,它如何侦听来自事件中心的传入事件?

假设我的消费计划中有一个 Azure 函数应用程序正在侦听 Azure 事件中心。根据文档,如果没有传入事件,函数应用实例的数量可以缩减到 0。据我了解,每个函数应用程序实例还实例化一个事件处理器主机,该主机正在侦听事件中心的分区。但如果实例数为 0,那么谁在监听事件中心以确定是否必须处理消息?函数实例数为0时是否存在Event Processor Host?这是到目前为止我想要完成的关于 Azure Functions + Azure Event Hubs 的(不完整的)图片: 在此处输入图像描述

在上述文档中,我还阅读了有关规模控制器的信息,该控制器显然会在需要时添加新的功能主机实例。这是否意味着,规模控制器也必须侦听事件中心?缩放控制器位于何处,它是我可以在 Azure 中创建的函数应用资源的一部分,还是托管在 Azure 的隔离部分中,与我的函数应用的存在无关?

编辑:根据答案采用图像。