- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下理论问题。
我希望能够在我的 Azure 应用程序中为每个角色创建多个实例。至少 2 个,以确保其 24/7(或接近 24/7)工作。
这对于客户端前端和监听数据的角色来说很容易。
对于处理数据并将结果保存在 blob/表存储中的辅助角色来说,假设每个辅助角色处理自己的数据集来创建单个结果,这也很容易。
但是我对该应用程序的“中间”遇到了问题。
在最简单的情况下,如果我可以创建一个 Azure 存储“不同”队列(没有两条消息是相同的),那么这会很容易。但据我所知,这是不可能的,特别是因为你一次只能下载 32 条消息。
所以,我认为我需要某种 Controller 角色。该角色将确保工作角色不会互相干扰。
但是,这意味着 Controller 角色不能有多个实例!
我应该如何解决这个问题?
编辑:
我发现我提供的有关我的问题的信息可能太少。
我知道 Azure 队列的工作原理;我知道消息一旦出队,在一段时间内或直到被删除之前,其他角色将无法使用它。
问题是,我不能只用随机的、唯一的数据(例如 GUID)填充队列。
这是对该问题的更实际的解释。
因此,我正在寻找一个独特的队列,或者至少提供一种方法来检查特定消息是否尚未放入其中。
如果服务总线是唯一的出路,那就这样吧,但最好让解决方案尽可能简单。 ;)
最佳答案
服务总线队列确实具有唯一消息的概念(这可能就是您所说的独特的意思)。这里对两种类型的队列进行了很好的比较:
弹性基础设施中的单一进程问题可以使用锁定来解决。您可以使用 blob 存储作为锁,如 smarx 的 blob 帖子所示:
http://blog.smarx.com/posts/managing-concurrency-in-windows-azure-with-leases
但是,我会考虑您的整个架构,并尝试减少您正在使用的角色数量。我在最近的一篇博客文章中对此提出了一些论点:
http://coderead.wordpress.com/2012/03/23/three-tier-architecture-in-the-cloud/
关于azure - 如何在Azure中创建 "distinct"队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9907502/
我是一名优秀的程序员,十分优秀!