读取 Azure 服务总线队列
Reading Azure Service Bus Queue
我只是想弄清楚如何以最快的速度从 Azure 服务总线队列中检索消息。
令我震惊的是,没有某种方法可以正确订阅通知队列,我将不得不进行投票。 (除非我错了,在这种情况下文档很糟糕)。
我进行了长轮询,但每 60 秒检查一条消息看起来每月要花费大约 900 英镑(同样,除非我误解了这一点)。如果我添加一个 redundant/second 服务来轮询,它会加倍。
所以我想知道 best/most 具有成本效益的方法是什么。
基本上我只是想从队列中获取一条消息,对一些内部保存的数据执行 API 查找(可能使用混合服务?)然后可能 post 一条消息返回到带有一些附加信息的不同队列。
我查看了 worker 角色(?)- 可以做到吗?
我应该提一下,我一直在考虑用 node.js 来做这件事。
查看这些来自 Scott Hanselman 和 Mark Simms 关于 Azure 队列的视频。
它是 C#,但你明白了。
https://channel9.msdn.com/Search?term=azure%20queues%20simms#ch9Search
涉及:
- 存储队列与服务总线队列
- 批量抓取消息与逐条抓取消息(大块头与闲聊)
- 处理有毒消息(坏人)
- 其他实施细节
- 更多的东西我现在不记得了
至于您的计算,您可以执行 VM、辅助角色(云服务)、App Service Webjobs 或 Azure Functions。
Webjobs SDK 和 Azure Functions 机器人有一种方法可以订阅队列事件(通知消息)。
(从 IaaS 到 PaaS 再到 FaaS - Azure Functions - 如果存在这样的东西列出)。
Azure Functions 已经提供了示例代码作为模板来使用 Node.js 完成所有这些工作。只需创建一个新函数并按照向导操作即可。
如果您需要接触本地数据,您需要考虑与具有站点到站点连接的 VNET 集成回到您的本地,或混合连接(仅限应用服务!)。 Azure Functions 还不能做到这一点,但其他所有计算都可以。
https://azure.microsoft.com/en-us/documentation/articles/web-sites-hybrid-connection-get-started/
(该教程仅是 Windows,但您可以从任何 OS 中提取数据。混合连接管理器必须位于 Windows 框上,但随后它充当任何主机的反向代理在您的网络上)。
为了轻松处理Azure ServiceBus Queue,最好的选择似乎是Azure Webjob。
有一个 ServiceBusTrigger 允许您从 Azure ServiceBus 队列获取消息。
对于 node.js 集成,您应该查看 Azure Function。它建立在 webjob SDK 之上并具有 node.js 集成:
- Azure Functions NodeJS developer reference
- Azure Functions Service Bus triggers and bindings for queues and topics
在第二篇文章中,有一个使用Azure函数和nodejs从队列中获取消息的例子:
module.exports = function(context, myQueueItem) {
context.log('Node.js ServiceBus queue trigger function processed message', myQueueItem);
context.done();
};
我只是想弄清楚如何以最快的速度从 Azure 服务总线队列中检索消息。
令我震惊的是,没有某种方法可以正确订阅通知队列,我将不得不进行投票。 (除非我错了,在这种情况下文档很糟糕)。
我进行了长轮询,但每 60 秒检查一条消息看起来每月要花费大约 900 英镑(同样,除非我误解了这一点)。如果我添加一个 redundant/second 服务来轮询,它会加倍。
所以我想知道 best/most 具有成本效益的方法是什么。
基本上我只是想从队列中获取一条消息,对一些内部保存的数据执行 API 查找(可能使用混合服务?)然后可能 post 一条消息返回到带有一些附加信息的不同队列。
我查看了 worker 角色(?)- 可以做到吗?
我应该提一下,我一直在考虑用 node.js 来做这件事。
查看这些来自 Scott Hanselman 和 Mark Simms 关于 Azure 队列的视频。 它是 C#,但你明白了。
https://channel9.msdn.com/Search?term=azure%20queues%20simms#ch9Search
涉及:
- 存储队列与服务总线队列
- 批量抓取消息与逐条抓取消息(大块头与闲聊)
- 处理有毒消息(坏人)
- 其他实施细节
- 更多的东西我现在不记得了
至于您的计算,您可以执行 VM、辅助角色(云服务)、App Service Webjobs 或 Azure Functions。
Webjobs SDK 和 Azure Functions 机器人有一种方法可以订阅队列事件(通知消息)。
(从 IaaS 到 PaaS 再到 FaaS - Azure Functions - 如果存在这样的东西列出)。
Azure Functions 已经提供了示例代码作为模板来使用 Node.js 完成所有这些工作。只需创建一个新函数并按照向导操作即可。
如果您需要接触本地数据,您需要考虑与具有站点到站点连接的 VNET 集成回到您的本地,或混合连接(仅限应用服务!)。 Azure Functions 还不能做到这一点,但其他所有计算都可以。
https://azure.microsoft.com/en-us/documentation/articles/web-sites-hybrid-connection-get-started/ (该教程仅是 Windows,但您可以从任何 OS 中提取数据。混合连接管理器必须位于 Windows 框上,但随后它充当任何主机的反向代理在您的网络上)。
为了轻松处理Azure ServiceBus Queue,最好的选择似乎是Azure Webjob。
有一个 ServiceBusTrigger 允许您从 Azure ServiceBus 队列获取消息。
对于 node.js 集成,您应该查看 Azure Function。它建立在 webjob SDK 之上并具有 node.js 集成:
- Azure Functions NodeJS developer reference
- Azure Functions Service Bus triggers and bindings for queues and topics
在第二篇文章中,有一个使用Azure函数和nodejs从队列中获取消息的例子:
module.exports = function(context, myQueueItem) {
context.log('Node.js ServiceBus queue trigger function processed message', myQueueItem);
context.done();
};