internet连接分布式C#客户端的消息队列解决方案

internet连接分布式C#客户端的消息队列解决方案,c#,scalability,msmq,C#,Scalability,Msmq,我正在研究C#的消息队列解决方案的初始阶段,我希望能获得任何经验、教训、战争故事等。我还想问几个关于MSMQ是否适合我们的配置的具体问题 简单地说,我们有一个分布式体系结构:各种服务器端事件生成由部署的客户端检索的工作项。这些客户端连接到服务器,检索并处理工作,然后返回“等待工作完成” 关于这些客户的几个相关细节: 今天,我们有数百个客户端安装,并且需要为在未来18个月内增长到数万个做好准备 客户端从不向服务器提交任务——它们是“纯拉式”的 客户端的有效负载为=WinXP-SP1。有些是wind

我正在研究C#的消息队列解决方案的初始阶段,我希望能获得任何经验、教训、战争故事等。我还想问几个关于MSMQ是否适合我们的配置的具体问题

简单地说,我们有一个分布式体系结构:各种服务器端事件生成由部署的客户端检索的工作项。这些客户端连接到服务器,检索并处理工作,然后返回“等待工作完成”

关于这些客户的几个相关细节:

  • 今天,我们有数百个客户端安装,并且需要为在未来18个月内增长到数万个做好准备
  • 客户端从不向服务器提交任务——它们是“纯拉式”的
  • 客户端的有效负载为=WinXP-SP1。有些是windows活动目录、windows域或临时工作组的一部分
  • 大多数情况下,客户机是空闲的。我们希望高效地“等待工作”,然后尽快响应工作(即,我们希望客户机在工作项排队后尽快接收工作项)
  • 偶尔,我们的客户会从互联网上消失一段时间:他们的机器会被关闭一天或一夜,等等。我们希望工作项目在他们重新上线时到达。换句话说,我们确实需要消息的可靠性
  • 我们控制所有客户机和服务器代码,但不控制客户机环境(尽管我们的安装人员确实安装了必备软件,如.NET 3.5,如果还没有的话)
  • 那么,鉴于上述情况,MSMQ是否会“自然”为我们工作?对于MSMQ如何(或是否)处理不在域/active directory中以及通过internet连接时侦听消息的客户端,我还没有找到明确的答案。到目前为止,我对MSMQ的阅读感觉相当“以企业为中心”——我们的非企业需求会成为MSMQ的问题吗

    您过去在类似设置中使用过哪些其他解决方案

    当然,我还应该问些什么问题呢?;-)


    谢谢

    如果您看到的是Internet上的中央服务器,它的队列中有消息等待远程客户端读取,那么MSMQ就不是适合您的产品(我很难说)。 MSMQ无法使用HTTP在Internet上提取消息。 您必须打开端口135并使用RPC协议,这在Internet上不一定是个好主意

    干杯
    John Breakwell

    RabbitMQ听起来像是您的解决方案