5 queue azure azure-queues azure-sql-database
我目前正在为基于分布式事件的系统组建一个参考体系结构,其中事件使用普通旧表(没有SQL Server Service Broker)存储在SQL Server Azure数据库中.
将使用工作者角色处理事件,工作者角色将轮询队列以获取新的事件消息.
在我的研究中,我看到许多解决方案允许多个处理器处理队列中的消息.我遇到的很多模式的问题是当多个进程试图访问单个消息队列时管理锁定等的复杂性.
我知道传统的队列模式是从一个队列中拉出多个处理器.但是,假设可以按任何顺序处理事件消息,是否有任何理由不在队列与其队列处理器之间创建一对一关系,只是在不同队列之间进行负载平衡?
queue_1 => processor_1
queue_2 => processor_2
此实现避免了管理跨多个处理器的队列并发访问所需的所有管道.事件发布者可以使用任何负载平衡算法来决定将消息发布到哪个队列.
事实上,我在任何搜索中都没有看到这种实现,这让我觉得我忽略了这个设计中的一个主要缺陷.
编辑
这篇文章引发了关于使用数据库表作为队列与MSMQ,Azure队列等的争论.我理解我可以使用许多本机排队选项,包括Azure AppFabric中的持久消息缓冲区.我已经评估了我的选项,并确定SQL Azure表就足够了.我的问题是讨论针对单个队列使用多个处理器而不是每个队列使用一个处理器.
| 归档时间: |
|
| 查看次数: |
3695 次 |
| 最近记录: |