我们有一个需求,需要实现排队,这样我们就可以控制并发而不会使数据库过载。在 Microsoft 世界中,我们选择使用 MSMQ 来存储请求。计划创建 100 个队列(每个客户 1 个)并并行处理队列以实现最大并发。
我们的主要设计目标是一次只允许每个客户/队列一次呼叫,并独立处理每个客户。
我们坚持选择正确的技术来处理队列。那里有两个。
创建一个 .NET windows 服务并使用队列对象事件ReceiveCompleted处理多个队列。在这里,我们可以选择将相同的方法附加到多个队列。需要使用一些同步锁为单个队列添加自定义并发代码。参考文献1
使用 WAS 拥有多个 WCF 服务来处理每个队列(不同队列的相同副本;仅更改队列名称)并实施节流以限制每个服务的并发性。看起来 WCF 服务只能处理一个队列。 参考文献2
你会建议哪一个?有没有更好的办法?请帮助我们!!!