这是一个理论问题:
当我使用消息队列构建应用程序时,我将需要多个队列支持不同的数据类型以用于不同的目的。假设我有 20 个队列(例如,一个用于创建新用户,一个用于处理新订单,一个用于编辑用户设置等)。
我将使用“最少”1 个 Web 角色和 1 个辅助角色将其部署到 Windows Azure。
如何以正确的方式从所有这 20 个队列中读取数据?这就是我的想法,但我对此几乎没有实际经验:
创建一个在工作角色“主”类中产生 20 个线程的类。让这些线程中的每一个执行一个方法来轮询不同的队列,并让所有这些线程在每次轮询之间休眠(当然还有增加休眠时间的退避机制)。
这导致有 20 个线程(或 21 个?)和 20 个正在被主动轮询的队列,从而导致大量浪费的消息(每次轮询一个空队列时,它都被计费为一条消息)。
你怎么解决这个问题?