sql-server – 消息队列的良好策略?
我目前正在设计一个我最终将要迁移到
Windows Azure的应用程序.但是在短期内,它将会运行在我将主持的服务器上.
该应用程序涉及许多单独的Web应用程序 – 其中一些本质上是接收数据的WCF服务,一些是用户管理数据的站点.另外,还需要一个在后台运行的worker服务,它将以各种方式处理数据. 我非常希望为此使用解耦体系结构.理想情况下,我希望组件(即Web应用程序和工作人员服务)尽可能少地了解彼此.似乎使用消息队列将是最好的解决方案 – 网络应用程序可以将工作单元的消息排入队列,并且工作服务可以根据需要选择它们并处理它们. 不过,我想为此做出一整套技术,同时考虑到我最终将转向Azure,并希望尽量减少迁移到云端时需要做的重新工作量. . Azure具有内置的队列组件,其中看起来非常适合我的需要.我想做的是创造一些自己会尽可能模仿的东西. 看起来有几个选项(我在Windows上使用.NET,SQL Server 2005后端) – 我发现的到目前为止: > MSMQ 我想知道有没有人对此有任何建议 – 或者如果有人做了类似的事情,并且有关于要做/避免的事情的建议.我意识到每一种情况都是不同的,但在这种情况下,我认为我的排队要求是非常通用的,所以我很乐意听到任何人对最好的方式的想法. 提前致谢, 约翰 解决方法如果您有Azure,或许您应该直接在Azure上,因为Azure队列和任何MSMQ或SSB之间的API和semnatics有显着差异.一个快速3048米的MSMQ与SSB的比较(我将离开一个自定义的排队比赛,因为它真的取决于你如何实现它…) >部署:MSMQ是Windows组件,SSB是SQL组件. SSB需要一个SQL实例来存储任何消息,所以断开的客户端需要访问一个实例(可以是Express). MSMQ需要在客户端部署MSMQ(部分操作系统,但可选安装). 另外我补充说,SSB和MSMQ在它们提供的原语水平上有很大差异:SSB原语是一个对话,而MSMQ原语是一个消息.认为TCP与UDP语义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |