与Azure事件中心通信时发生EPOCH错误

Ani*_*l C 2 azure signalr azure-eventhub

我正在使用Azure Event Hub监听应用程序中的实时数据。在大多数情况下,它工作正常,但有时会引发以下错误-

已创建新的具有较高纪元“ 3109”的接收器,因此当前具有纪元“ 3108”的接收器已断开连接。如果要重新创建接收器,请确保使用更高的纪元。TrackingId:eb2a6f970000494500f379f85b484a9f_C-1553490498_B22,SystemTracker:xxxxxxxxxx:eventhub:xxxxxxx〜2730 | $ default,时间戳:7/13/2018 6:48:54 AM。

应用程序停止处理数据。我在网上浏览了几篇文章,但找不到任何解决方案。在MSDN上,我阅读

EPH依赖于以下事实:“在任何给定时间,一个消费群体上只能有1个有效的时代接收器

但我不确定如何确保只有1个有效时期。而且,同一事件中心由三个不同的环境(即开发,测试,生产)使用。

任何建议都将受到高度赞赏。

Mur*_*oft 5

听起来您正在运行两个应用程序实例,两个并发类或两个使用相同事件中心使用者组的应用程序。事件中心使用者组实际上是指向事件流上某个时间点的指针。如果尝试使用指向两个代码实例的一个消费者组,那么您将遇到与看到的冲突。

要么:

  1. 确保一次只有一个实例读取使用者组。
  2. 当您需要两个单独的程序或功能集同时处理事件中心时,请使用两个使用者组。
  3. 如果要并行化性能,请查看事件中心分区,以及如何利用独立处理每个分区的优势。

还有一种替代方案,其中将事件中心分区切换到另一个主机,作为事件中心内部负载平衡的一部分。在这种情况下,您可能会看到收到的错误。在这种情况下,只需登录并继续。

这是一些很好的文档,可以帮助您。