【发布时间】:2016-06-26 20:52:29
【问题描述】:
我只是想弄清楚如何最好地尽快从 Azure 服务总线队列中检索消息。
我很震惊,没有办法正确订阅通知队列,我将不得不进行轮询。 (除非我错了,在这种情况下文档很糟糕)。
我进行了长时间的轮询,但每 60 秒检查一条消息似乎每月需要花费大约 900 英镑(同样,除非我误解了这一点)。如果我添加一个冗余/第二个服务来轮询它会加倍。
所以我想知道最好/最具成本效益的方法是什么。
基本上我只是想从队列中获取一条消息,对一些内部保存的数据执行 API 查找(可能使用混合服务?),然后可能将一条带有一些附加信息的消息发送回另一个队列。
我查看了工人角色(?)——这是可以做到的吗?
我应该提到我一直在考虑用 node.js 来做这件事。
【问题讨论】:
-
辅助角色与服务总线无关 - 它们只是无状态的 Windows Server VM,具有特定的配置和扩展方式。
-
你的价格是怎么来的?服务巴士队列是免费提供的。一条消息的成本是什么
-
感谢您的回复。我在某个地方看到过,我认为工作人员角色可以收到队列添加的通知,这就是让我问的原因。对于定价,它是在 http 调用的代理连接下进行的,我假设这是轮询正在使用的。在标准层级下,只有前 1000 个是免费的。 azure.microsoft.com/en-gb/pricing/details/service-bus我是不是弄错了,因为那太好了。再次感谢。
-
看来我可能弄错了。常见问题解答建议收费是针对“并发代理连接的峰值数量”和“峰值按小时计算,除以 744 小时按比例计算一个月”。他们举例如下:“10,000 台设备通过 HTTP 从服务总线队列接收消息,指定非零超时。如果所有设备每天连接 12 小时,您将看到以下连接费用 10,000 个 HTTP 接收连接* 每天 12 小时 * 31 天 / 744 小时 = 5,000 个代理连接。"
-
因此,如果我的理解是正确的,让脚本每 55 秒执行一次长轮询(允许的最大值),那只能算作一个“并发”连接,对吧?即使它每 55 秒轮询一次?所以这是我允许的 1000 个设备中的 1 个设备 * 24 小时 * 31 天 / 744 小时 = 1 个,对吗?我想问题仍然存在——这是最好/唯一的方法吗?
标签: node.js azure azureservicebus