我正在实现一个 azure 事件中心订阅者,它能够成功连接,但它没有接收事件中心命名空间中特定事件中心的消息。但对于同一命名空间中的其他事件中心,它可以按预期工作。日志中没有错误。有什么办法可以找出问题的根本原因吗?
我能够使用相同的配置成功发布消息。
发布者和订阅者在同一台计算机上运行。
我已经在 Dapr 中实现了发布者和订阅者。
Dapr 中的发布者和订阅者日志完全相同,因此我认为这是存储帐户的问题。
添加更多信息:
我已使用不同的存储帐户尝试了我的应用程序,它按预期工作。那么问题出在哪里呢?我该如何解决?我想使用我的旧存储帐户。
最佳答案
所有问题
您的问题中有多个问题放在一起,可以单独测试。 (例如事件中心、dapr、存储帐户...等)对这些问题有深入的了解至关重要,因此我会尝试对它们进行一一测试。
事件中心问题
您可以通过在本地创建简单的“hello world”客户端并根据您的生产场景重现它们之间的关系来单独测试您的事件中心流。
例如
- 尝试连接到只有一个发布者和一个消费者的事件中心,
- 尝试通过一个发布者将同一消息发布到多个事件中心,看看是否可以通过单独的使用者使用它们,
- ...等等
根据您的评论,我将列出 2 个示例问题场景:
问题 1:“我可以访问命名空间中的一个事件中心,但无法访问同一命名空间中的另一个事件中心。”
- 您可以为事件中心命名空间的范围配置“共享访问策略”,该策略将应用于该命名空间中的所有事件中心。
- 您还可以为事件中心的范围配置相同的策略,这些策略将仅应用于该单个中心。
尝试使用代码中的连接字符串时,请确保在 Azure 门户中使用适当的范围。
问题 2:“我可以将消息从客户端发布到事件中心,但无法使用同一客户端、同一台计算机和相同的连接字符串使用消息。”
您可以配置无限数量的“共享访问策略”,每个策略都有一个自定义 key 和连接字符串。
您还可以为每个策略配置客户端访问权限,从以下 3 个选项中进行选择:
- 管理
- 发送
- 听
确保使用适当的客户端访问权限。如果要使用完全相同的连接字符串进行发送和监听,请添加对该策略的“发送”和“监听”访问权限。 (您还可以有不同的策略和连接字符串用于发送和监听...等)
关于azure - 为什么 Azure 事件中心订阅者无法工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70361196/