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

时间:2018-07-20 11:27:27

标签: 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个有效时期。而且,同一事件中心可在三种不同的环境(开发,测试,生产)中使用。

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

1 个答案:

答案 0 :(得分:4)

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

任何一个:

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

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

Here is some good documentation to help you on your way.