问题标签 [azure-storage-queues]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
22879 浏览

azure - 在 .NET 服务总线队列与 Azure 队列服务之间进行选择

只是一个关于 Azure 应用程序的快速问题。如果我有许多需要通信的 Web 和 Worker 角色,文档说要使用 Azure 队列服务。

但是,我刚刚读到新的 .NET 服务总线现在也提供队列。这些看起来更强大,因为它们似乎提供了更详细的 API。虽然 .NSB 看起来更有趣,但它有几个问题让我对在分布式应用程序中使用它持谨慎态度。(例如,队列过期......如果我不能保证队列会按时更新,我可能会失去它!)。

有没有人有任何使用这两种技术的经验,并且可以就何时选择其中一种技术提供任何建议。

我怀疑虽然服务总线看起来更强大,因为我的用例实际上只是使 Web/Worker 角色能够相互通信,但我所追求的是 Azure 队列服务。但在将自己编程到角落之前,我真的只是在寻找确认:-)

提前致谢。

更新

在休息期间阅读了有关这两个系统的信息。defo 看起来 .NET 服务总线更专为集成系统而设计,而不是提供通用的可靠消息传递系统。Azure 队列是分布式的,并且如此可靠和可扩展,而 .NSB 队列则不是,因此更适合托管在 Azure 本身内的代码。

感谢您的回复。

0 投票
1 回答
821 浏览

c# - 对于 T4 模板的 Azure 队列构造,这是一个好的/首选模式吗?

我正在构建一个 T4 模板,它将帮助人们以一致且简单的方式构建 Azure 队列。我想让这个自我记录,并且有点一致。

  1. 首先我在文件顶部创建了队列名称,队列名称必须是小写的,所以我添加了 ToLower()

  2. 公共构造函数使用内置的 StorageClient API 来访问连接字符串。我已经看到了许多不同的方法,并且希望得到适用于几乎所有情况的东西。(想法?分享)

  3. 我不喜欢检查队列是否已创建的不需要的 HTTP 请求,所以我创建了一个static bool. 我没有实现 Lock(monitorObject) 因为我认为不需要。

  4. 我不是使用字符串并用逗号解析它(像大多数 MSDN 文档一样),而是在将对象传递到队列时对其进行序列化。

  5. 为了进一步优化,我使用JSON 序列化程序扩展方法来充分利用 8k 限制。不确定编码是否有助于优化这一点

  6. 添加了重试逻辑以处理队列中发生的某些情况(请参阅 html 链接)

  7. 问: “DataContext”这个类的名称合适吗?

  8. 问:以我所做的方式命名队列操作名称是一种不好的做法吗?

你认为我应该做哪些额外的改变?

0 投票
1 回答
2384 浏览

azure - 是否多个 Azure 辅助角色轮询同一个队列会导致死锁或中毒消息

设想:

如果我使用多个线程剥离了多个 Worker 角色或 ONE Worker 角色,它会轮询 Azure 队列中的新消息。

有人可以确认这是否是正确的设计方法吗?我想拥有许多工作者角色的原因是为了加快 PROCESSJOB。我们的应用程序应该是接近实时的,即一旦我们应该得到消息,应用复杂的业务规则并提交到 AZURE DB。我们预计每 3 分钟有 11,000 条消息。

谢谢你。

0 投票
6 回答
24640 浏览

c# - 在 Azure 队列存储中传递对象消息

我正在尝试找到一种将对象传递到 Azure 队列的方法。我找不到办法做到这一点。

正如我所见,我可以传递字符串或字节数组,这对于传递对象来说不是很舒服。

反正有没有将自定义对象传递给队列?

谢谢!

0 投票
2 回答
277 浏览

php - AzurePHP - 轮询 Azure 队列

我有一个将文件写入 Azure Blob 的 PHP 脚本。上传文件后,Azure 中的逻辑会执行计算,然后将结果放入 Blob。完成后,将一条消息放入 Azure 队列。

我正在尝试在 php 中编写轮询队列的代码,寻找指示结果已准备好下载的特定消息。你会如何处理这个问题?

0 投票
1 回答
883 浏览

performance - Azure Worker:以互斥方式从 Azure 队列中读取消息

我的worker角色的run方法是:

对于性能测试,我希望只能由工作人员分析消息(我不考虑工作人员的故障问题)。

但根据我的测试,似乎两个工人可以接收相同的消息并读取 DequeueCount 等于 1(两个工人)。是否可以?

是否存在一种仅允许工作人员以“互斥”方式读取消息的方式?

0 投票
3 回答
2984 浏览

azure - 如何从现实世界中的多个队列中读取?

这是一个理论问题:

当我使用消息队列构建应用程序时,我将需要多个队列支持不同的数据类型以用于不同的目的。假设我有 20 个队列(例如,一个用于创建新用户,一个用于处理新订单,一个用于编辑用户设置等)。

我将使用“最少”1 个 Web 角色和 1 个辅助角色将其部署到 Windows Azure。

如何以正确的方式从所有这 20 个队列中读取数据?这就是我的想法,但我对此几乎没有实际经验:

创建一个在工作角色“主”类中产生 20 个线程的类。让这些线程中的每一个执行一个方法来轮询不同的队列,并让所有这些线程在每次轮询之间休眠(当然还有增加休眠时间的退避机制)。

这导致有 20 个线程(或 21 个?)和 20 个正在被主动轮询的队列,从而导致大量浪费的消息(每次轮询一个空队列时,它都被计费为一条消息)。

你怎么解决这个问题?

0 投票
2 回答
1031 浏览

c# - 如何将 Observable 序列化到云端并返回

我需要在 Azure 环境中将处理序列(如如何使用 .net RX 组织数据处理器序列)拆分为多个计算单元。
这个想法是将 Observable 序列序列化到 Azure 队列(或服务总线)并将其反序列化。
如果生产者或消费者失败,另一方应该能够继续生产/消费。

任何人都可以提出一种优雅的方法以及使用什么(Azure Queues 或 Service Bus)吗?
有没有人使用过 TCP Observable 提供程序 - http://rxx.codeplex.com/wikipage?title=TCP%20Qbservable%20Provider来解决此类问题对于其中一方的失败是否安全?

0 投票
2 回答
8160 浏览

azure - Azure 队列 - 我可以验证一条消息将只被读取一次吗?

我正在使用 Azure 队列,并且有几个不同的进程从队列中读取。
我的系统是以一种假设每条消息只读一次的方式构建的。
这篇Microsoft 文章声称 Azure 队列具有至少一次传递保证,这可能意味着两个进程可以从队列中读取相同的消息。
这个StackOverflow 线程声称,如果我使用GetMessage,那么消息对于所有其他进程变得不可见,因为不可见超时。

假设我使用GetMessage()并且在DeleteMessage之前从未超过消息不可见时间,我可以假设我只会收到每条消息一次吗?

0 投票
1 回答
485 浏览

azure - Azure 抽象库:Lokad 和 CloudFx 之间有什么区别和建议?

在 Lokad 和 CloudFx 之间,我们正在考虑哪种框架最能支持在 Windows Azure 上持续快速开发高质量和可扩展的云解决方案。Lokad 和 CloudFx 似乎都在不同的 Azure 服务之上提供了一个很好的抽象层,并且还提供了一个扩展框架。

Lokad 在 GitHub 上可用,而 CloudFx 框架源代码尚未发布。两者都受版权保护,但具有许可许可。CloudFx 由 Microsoft 开发,而 Lokad 由第三方开发。Lokad 的开发似乎很松懈(2012 年 2 月/4 月的最新更新),而 CloudFx 在 2012 年进行了多次更新。现在我倾向于 CloudFx 的全面 API 和微软的所有权。

您使用这两个框架和您的建议有何经验?是否有任何替代方法?