问题标签 [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.
azure - 在 .NET 服务总线队列与 Azure 队列服务之间进行选择
只是一个关于 Azure 应用程序的快速问题。如果我有许多需要通信的 Web 和 Worker 角色,文档说要使用 Azure 队列服务。
但是,我刚刚读到新的 .NET 服务总线现在也提供队列。这些看起来更强大,因为它们似乎提供了更详细的 API。虽然 .NSB 看起来更有趣,但它有几个问题让我对在分布式应用程序中使用它持谨慎态度。(例如,队列过期......如果我不能保证队列会按时更新,我可能会失去它!)。
有没有人有任何使用这两种技术的经验,并且可以就何时选择其中一种技术提供任何建议。
我怀疑虽然服务总线看起来更强大,因为我的用例实际上只是使 Web/Worker 角色能够相互通信,但我所追求的是 Azure 队列服务。但在将自己编程到角落之前,我真的只是在寻找确认:-)
提前致谢。
更新
在休息期间阅读了有关这两个系统的信息。defo 看起来 .NET 服务总线更专为集成系统而设计,而不是提供通用的可靠消息传递系统。Azure 队列是分布式的,并且如此可靠和可扩展,而 .NSB 队列则不是,因此更适合托管在 Azure 本身内的代码。
感谢您的回复。
c# - 对于 T4 模板的 Azure 队列构造,这是一个好的/首选模式吗?
我正在构建一个 T4 模板,它将帮助人们以一致且简单的方式构建 Azure 队列。我想让这个自我记录,并且有点一致。
首先我在文件顶部创建了队列名称,队列名称必须是小写的,所以我添加了 ToLower()
公共构造函数使用内置的 StorageClient API 来访问连接字符串。我已经看到了许多不同的方法,并且希望得到适用于几乎所有情况的东西。(想法?分享)
我不喜欢检查队列是否已创建的不需要的 HTTP 请求,所以我创建了一个
static bool
. 我没有实现 Lock(monitorObject) 因为我认为不需要。我不是使用字符串并用逗号解析它(像大多数 MSDN 文档一样),而是在将对象传递到队列时对其进行序列化。
为了进一步优化,我使用JSON 序列化程序扩展方法来充分利用 8k 限制。不确定编码是否有助于优化这一点
添加了重试逻辑以处理队列中发生的某些情况(请参阅 html 链接)
问: “DataContext”这个类的名称合适吗?
问:以我所做的方式命名队列操作名称是一种不好的做法吗?
你认为我应该做哪些额外的改变?
azure - 是否多个 Azure 辅助角色轮询同一个队列会导致死锁或中毒消息
设想:
如果我使用多个线程剥离了多个 Worker 角色或 ONE Worker 角色,它会轮询 Azure 队列中的新消息。
有人可以确认这是否是正确的设计方法吗?我想拥有许多工作者角色的原因是为了加快 PROCESSJOB。我们的应用程序应该是接近实时的,即一旦我们应该得到消息,应用复杂的业务规则并提交到 AZURE DB。我们预计每 3 分钟有 11,000 条消息。
谢谢你。
c# - 在 Azure 队列存储中传递对象消息
我正在尝试找到一种将对象传递到 Azure 队列的方法。我找不到办法做到这一点。
正如我所见,我可以传递字符串或字节数组,这对于传递对象来说不是很舒服。
反正有没有将自定义对象传递给队列?
谢谢!
php - AzurePHP - 轮询 Azure 队列
我有一个将文件写入 Azure Blob 的 PHP 脚本。上传文件后,Azure 中的逻辑会执行计算,然后将结果放入 Blob。完成后,将一条消息放入 Azure 队列。
我正在尝试在 php 中编写轮询队列的代码,寻找指示结果已准备好下载的特定消息。你会如何处理这个问题?
performance - Azure Worker:以互斥方式从 Azure 队列中读取消息
我的worker角色的run方法是:
对于性能测试,我希望只能由工作人员分析消息(我不考虑工作人员的故障问题)。
但根据我的测试,似乎两个工人可以接收相同的消息并读取 DequeueCount 等于 1(两个工人)。是否可以?
是否存在一种仅允许工作人员以“互斥”方式读取消息的方式?
azure - 如何从现实世界中的多个队列中读取?
这是一个理论问题:
当我使用消息队列构建应用程序时,我将需要多个队列支持不同的数据类型以用于不同的目的。假设我有 20 个队列(例如,一个用于创建新用户,一个用于处理新订单,一个用于编辑用户设置等)。
我将使用“最少”1 个 Web 角色和 1 个辅助角色将其部署到 Windows Azure。
如何以正确的方式从所有这 20 个队列中读取数据?这就是我的想法,但我对此几乎没有实际经验:
创建一个在工作角色“主”类中产生 20 个线程的类。让这些线程中的每一个执行一个方法来轮询不同的队列,并让所有这些线程在每次轮询之间休眠(当然还有增加休眠时间的退避机制)。
这导致有 20 个线程(或 21 个?)和 20 个正在被主动轮询的队列,从而导致大量浪费的消息(每次轮询一个空队列时,它都被计费为一条消息)。
你怎么解决这个问题?
c# - 如何将 Observable 序列化到云端并返回
我需要在 Azure 环境中将处理序列(如如何使用 .net RX 组织数据处理器序列)拆分为多个计算单元。
这个想法是将 Observable 序列序列化到 Azure 队列(或服务总线)并将其反序列化。
如果生产者或消费者失败,另一方应该能够继续生产/消费。
任何人都可以提出一种优雅的方法以及使用什么(Azure Queues 或 Service Bus)吗?
有没有人使用过 TCP Observable 提供程序 - http://rxx.codeplex.com/wikipage?title=TCP%20Qbservable%20Provider来解决此类问题对于其中一方的失败是否安全?
azure - Azure 队列 - 我可以验证一条消息将只被读取一次吗?
我正在使用 Azure 队列,并且有几个不同的进程从队列中读取。
我的系统是以一种假设每条消息只读一次的方式构建的。
这篇Microsoft 文章声称 Azure 队列具有至少一次传递保证,这可能意味着两个进程可以从队列中读取相同的消息。
这个StackOverflow 线程声称,如果我使用GetMessage,那么消息对于所有其他进程变得不可见,因为不可见超时。
假设我使用GetMessage()并且在DeleteMessage之前从未超过消息不可见时间,我可以假设我只会收到每条消息一次吗?
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 和微软的所有权。
您使用这两个框架和您的建议有何经验?是否有任何替代方法?