读取Azure Service Bus队列

时间:2016-06-24 22:04:07

标签: node.js azure azureservicebus

我只是想弄清楚如何最好地从Azure Service Bus Queue中尽快检索邮件。

我很震惊,没有办法正确订阅通知队列,我将不得不进行民意调查。 (除非我错了,在哪种情况下文档很糟糕)。

我得到了长时间的民意调查工作,但是每60秒检查一条消息看起来每月花费大约900英镑(再次,除非我误解了这一点)。如果我添加一个冗余/第二个服务来轮询它将加倍。

所以我想知道最好/最具成本效益的方法是什么。

基本上我只是想从队列中获取一条消息,对一些内部保存的数据执行API查找(可能使用混合服务?),然后可能会将消息发回一个带有一些附加信息的不同队列。

我看了一下工人角色(?) - 这是可以做到的吗?

我应该提一下,我一直在用node.js来做这件事。

2 个答案:

答案 0 :(得分:2)

在Azure Queues上查看来自Scott Hanselman和Mark Simms的这些视频。 这是C#,但你明白了。

https://channel9.msdn.com/Search?term=azure%20queues%20simms#ch9Search

触及:

  • 存储队列与服务总线队列
  • 批量抓取消息与逐个抓取(chunky vs. chatty)
  • 处理毒药信息(坏人)
  • 其他实施细节
  • 我现在记不住的东西了

对于您的计算,您可以执行VM,工作者角色(云服务),App Service Webjobs或Azure功能。

Webjobs SDK和Azure Functions bot可以订阅队列事件(通知消息)。

(从IaaS列表到PaaS到FaaS - Azure功能 - 如果存在这样的事情)。

Azure Functions已经提供了作为模板提供的示例代码,以便使用Node完成所有这些操作。只需创建一个新函数并按照向导进行操作。

如果您需要在本地接触数据,您需要查看与具有站点到站点连接的VNET集成到您的前提或混合连接(仅限App Service!)。 Azure Functions还不能做到这一点,但是其他所有计算都是go。

https://azure.microsoft.com/en-us/documentation/articles/web-sites-hybrid-connection-get-started/ (该教程仅适用于Windows,但您可以从任何操作系统中提取数据。混合连接管理器必须位于Windows机器上,但它可以充当网络上任何主机的反向代理。)

答案 1 :(得分:2)

要轻松处理Azure ServiceBus队列,最佳选择似乎是Azure Webjob

ServiceBusTrigger允许您从Azure ServiceBus队列中获取邮件。

对于node.js集成,您应该查看Azure Function。它构建于webjob SDK之上,并具有node.js集成:

在第二篇文章中,有一个关于如何使用Azure Function和nodejs从队列中获取消息的示例:

module.exports = function(context, myQueueItem) {
    context.log('Node.js ServiceBus queue trigger function processed message', myQueueItem);
    context.done();
};