我正在尝试按照教程
实现接收器部分https://azure.microsoft.com/en-us/documentation/articles/event-hubs-java-ephjava-getstarted/
Failure while registering: com.microsoft.azure.eventprocessorhost.EPHConfigurationException: Encountered error while fetching the list of EventHub PartitionIds
我的eventhub中有16个分区。但是当我发送数据时,我没有指定任何分区。我如何知道我的数据发送到哪个分区?我是否因为所有分区而得到上述错误?
答案 0 :(得分:2)
理想情况下 - EPH应该使用“倾听” - 只是声明。现在我们在EventProcessorHost客户端代码中有一个bug,因此需要“管理”声明。我们正在努力。
错误“获取EventHub PartitionIds列表时遇到错误”是通用的,并在PartitionManager处抛出,同时查询分区。你遇到了下面的catch块中的一个例外。请指出内部异常的完整性(SEO)&更快的分辨率。
catch(XPathExpressionException|ParserConfigurationException|IOException|InvalidKeyException|NoSuchAlgorithmException|URISyntaxException|SAXException exception)
{
throw new EPHConfigurationException("Encountered error while fetching the list of EventHub PartitionIds", exception);
}
修改强>
此问题已在版本0.7.7
中修复。
答案 1 :(得分:1)
确保您的消费者sas策略确实包含“manage”而不仅仅是“listen”。 我想它必须具有能够列出分区的管理权限。
答案 2 :(得分:0)
我正在将eventhub与ELK堆栈集成在一起,并且遇到了相同的错误。 为了解决这个问题,我发现在事件中心命名空间所在的事件中心中,我必须允许访问我的ELK堆栈所在的VNET。
这可以通过转到以下页面来完成:EventHubNamespace>设置-防火墙和虚拟网络。 要么允许从所有网络进行访问,要么添加您特定的VNET,子网或IP范围(适用于特定计算机)。
除了将消费者sas策略设置为“管理”之外,这还应解决“获取EventHub PartitionIds列表时遇到的错误”错误。