【问题标题】:Notifying WCF Subscribers in Cloud Computing在云计算中通知 WCF 订阅者
【发布时间】:2012-11-08 18:42:16
【问题描述】:

我最近阅读了很多关于 WCF 的内容,每当出现实现订阅者广播机制的主题时(例如在即时消息传递系统中),解决方案总是使用静态字典来保存订阅者频道。

可以在以下问题的答案中找到一个示例,但这是一种常见做法。 Making a list of subscribers available across calls to a service

对于“传统”网络编程来说,这似乎是一个非常好的解决方案,但是在云中是如何处理的呢?具体来说,我们如何绕过网格中的每台计算机都有不同的“静态”变量这一事实?

我对不同的云平台知之甚少。 Azure、Amazon Web Services 和 VMWare 是否有不同的解决方案?

【问题讨论】:

    标签: wcf azure cloud


    【解决方案1】:

    对于广播/推送类型的通知,请查看 SignalR (http://signalr.net/)。 Microsoft 正在将其作为 ASP.NET 平台的一部分: http://channel9.msdn.com/Events/Build/2012/3-034

    它有一些非常好的功能,比如优雅,如果服务器/客户端不支持 WebSockets 等高级功能,则可以使用多种机制。虽然可行,但您必须在 WCF 中编写所有这些代码。

    云供应商平台之间存在很大差异。我可以向您发布多个链接,但您提到的云供应商正在非常迅速改变他们提供的内容。您对特定云供应商的承诺是长期的……不要认为供应商 A 拥有供应商 B 所没有的东西。顺便说一句,有一些差异……例如,亚马逊有专门的虚拟机:高 I/O、高内存、高 CPU。然而,例如 Azure 有一个设计得更好的 VM 层。

    我是这样想的(mu 意见)...微软是一家拥有:.NET、ASP.NET、服务器平台:SQL Server、Windows Server、SharePoint、Office Services 等的公司。他们的定位非常好反对像亚马逊或 VMWare 这样没有丰富产品组合的公司。此外,微软可以将这些服务器定价到云中,亚马逊/RackSpace/VMWare 必须为此向微软支付溢价。您似乎在谈论 WCF/.NET,这将有利于 Microsoft Azure 平台。

    在 Azure 上,您可以运行 Linux VM; python、Java 等中的代码,但它有利于 Microsoft 堆栈。相反,对于 AWS,您可以运行 .NET/Microsoft 等,但它有利于 Linux/开源堆栈。从长远来看……因为在 2 年内,两家主要的云供应商都将在这些领域做出承诺。例如,RackSpace 正在全力投入使用他们的 OpenStack 平台……他们别无选择。

    【讨论】:

    • 我不明白。当我查看您发布的链接时,似乎 SignalR 是推动 JavaScript 机制。我对任何涉及 javascript 或浏览器的解决方案都不感兴趣。你有更多关于“静态”服务器端变量问题的链接吗?
    • SignalR 两者都有,你应该看我发布的视频链接...他们创建了一个聊天应用程序(类似于 IM)并演示了几个展示客户端->服务器和服务器的多人游戏>客户。根据您的描述,您应该查看 SignalR。
    • 谢谢。这个视频用了四分之三的时间谈论 javascript,但在最后一个季度,他们开始谈论将它用于各种平台的 .net 客户端和云服务总线。
    【解决方案2】:

    Windows Azure 服务总线有几个选项可用于广播 WCF 事件。

    Realy 服务有一个 netEventRelayBinding,它允许订阅服务实例在客户端调用端点时接收单向服务调用。如果客户端断开连接,他们将不会收到任何消息。

    http://msdn.microsoft.com/en-us/wazplatformtrainingcourse_eventingonservicebusvs2010_topic2.aspx

    代理消息传递具有提示和订阅,其中一条消息可以传播给多达 2,000 个订阅者。消息被持久存储,因此如果客户端断开连接,他们将在重新连接时收到所有消息。

    http://www.cloudcasts.net/devguide/Default.aspx?id=12044

    问候,

    艾伦

    【讨论】:

    • 谢谢艾伦,我觉得这很有用。 MSDN 链接看起来很有趣;我将不得不通读它。我的计算机上的 McAfee-SiteAdvisor 似乎阻止了 cloudcasts 链接。
    【解决方案3】:

    可能值得您在AppHarbor 上查看RabbitMQ 之类的内容。这是我一直想看但找不到时间的东西。我只提到它是因为没有其他人有;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-01
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多