azure - 路由消息:主题到无服务器到多队列(可能)到无服务器到多休息
问题描述
抱歉,如果这很长和/或开放式……天蓝色的选项太多了,我正在努力选择在哪里使用哪些部分,所以我希望有人能帮助指出方向。
我正在尝试构建如下图所示的内容。我是一种从多租户服务总线主题(图表顶部)到租户特定 REST 端点(图表底部)的“路由”消息。
到目前为止,我面临的最困难的部分是拥有一种具有随时间变化的动态队列/事件触发器的函数概念,但我正在寻找有关解决方案任何部分的建议。
我有 4 个约束要处理:
- 这些消息必须最终到达相应的休息端点
- 这些 REST 端点节点是动态添加和删除的,但我确实知道(通过事件网格消息)何时发生。
- 那些 REST 端点节点也可以随时或长时间(几天)下线,并且所有消息最终都应该被传递
我有一个F1的主要工作解决方案,但正在寻找更好的想法,但实际上是我正在努力解决的F2 。
F1 目前我拥有的是:
- 每个租户服务器 1 个队列,根据事件网格消息创建/删除
- 可以根据服务总线消息内容返回队列名称的 Azure 函数
- 一个逻辑应用 (WIP),它将从主题订阅中取出消息,使用该函数确定目标队列名称,将 webhook URI 添加到消息属性,并将消息转发到该队列。
我认为 F1 最终会正常工作 :D ... 但是 f2 ..
F2
这是棘手的部分,现在我有 N 个队列,随着时间的推移来来去去。我不知道如何通过 1 个函数收听所有队列,所以我想尝试为每个队列再次推出 1 个函数。它将负责将消息从队列中拉出并发送到 REST webhook URI。
但是当其余端点关闭时,它应该暂停,而不是耗尽队列,也不确定如何有效地做到这一点,也许是另一个带有轮询的逻辑应用程序?
我正在考虑使用事件网格而不是队列,因为我认为它们通常有更多的无服务器支持,但我不确定这也能解决问题。
欣赏任何想法
解决方案
推荐阅读
- django - Django ORM:将排除与不在过滤器中结合使用
- selenium - Selenium 快门错误问题 - UnableToCompareImagesException
- excel-formula - 查找单元格是否包含 2 个单词中的 1 个,然后在不同的单元格中返回是或否
- java - 为什么我收到错误:NoSuchAlgorithmException; 必须被抓住或宣布被扔掉?
- swift - 向 Alamofire 发送可编码对象
- java - 我们可以通过java运行festival.exe吗?
- django - Django OperationalError:没有这样的表
- java - 我们可以在 Spring data jpa @Query 中调用或组合 Select 和过程吗
- c# - 无法解压PDF规范的内容流
- c++ - 提升独立应用程序中的崩溃