azure - 我应该改变微服务的通信方式吗?

标签 azure azure-functions azureservicebus azure-storage-queues azure-eventgrid

我们的应用程序由 7 个具有一定互通性的微服务组成。目前,我们使用简单的存储队列,微服务将事件发布到其中(事件数量相对较少)。然后,我们为每个队列提供一个可能调用另一个微服务的 azurefunction。现在这对我们来说工作得很好,服务使用大约 20 个具有相应功能的队列。

现在我们需要处理 blobstorage 事件,我做了一些谷歌搜索,然后开始变得非常困惑。突然有很多疑问:

  • 我们是否应该切换到 Azure 事件网格
    • 它可以不受任何限制地处理 blobstorage(blobstorage 触发器有一些功能)
    • 它允许多个订阅者(存储队列不允许)
    • 它有很多问题 - 也许这是新的推荐方式
    • 我喜欢一个中心事物的想法,但它让我想起了 biztalk...
  • 我应该切换到 Azure 服务总线吗
    • 它有一个很好的工具(ServiceBusExplorer)用于监视队列和监听器,我可以重新发布任何失败的事件
    • 它很好地可视化了我的 Azure Functions 订阅者
  • 我应该只继续使用存储队列吗
    • 监控有点困难,但效果很好

我将非常感谢您对此问题的任何建议或见解。

谢谢

最佳答案

当您有通知 float 到多个订阅者时,EventGrid 非常有用。你也是这样吗?

一个例子是延迟消息。使用队列,您可以推迟消息,但使用 EventGrid 则不行。何时选择存储队列或服务总线取决于您的具体要求。您需要重复数据删除吗?还是订的送货?如果您这样做,服务总线就是您的选择。否则存储队列就足够了。

关于azure - 我应该改变微服务的通信方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49169564/

相关文章:

c# - Azure DocumentDB - HTTP 请求中找到的 MAC 签名与计算的签名不同

azure - 如何读取Azure存储 key

Azure 二头肌 - 应用服务计划名称和层级

azure - azure 函数上的 TaskCanceledException(服务总线触发器)

.net - 有没有办法对 Azure 服务总线进行防火墙?

Azure 服务总线 - SuscriptionClient.BeginAcceptMessageSession() 和 TimeoutException

python - Azure网站使用python3和django

Azure 管理服务 API 以某种加密格式提供部署配置

c# - 使用 powershell 脚本获取功能键时出错

Azure 服务总线无法从 Azure 门户创建主题