gpt4 book ai didi

wcf - Azure 上基于房间的发布/订阅应用程序的负载平衡

转载 作者:行者123 更新时间:2023-12-03 04:39:08 25 4
gpt4 key购买 nike

我有一个正在运行的 Silverlight/WCF 应用程序,我需要开始考虑扩展。当然,一个明显的扩展目标是 Azure。

该应用程序的关键架构特征是 2-10 个 Silverlight 客户端将加入给定的“房间”(使用双工 Net.TCP 连接),然后这些客户端中的任何一个都可以发送消息(例如,聊天)消息),然后需要使用底层双工 WCF 连接将其实时推送到连接到同一房间的所有其他客户端。

目前,WCF 服务的工作方式基本上是在内存中保存一系列 session 及其关联的房间,以便当来自一个 session 的消息传入时,它可以自动发送该消息房间里的所有其他 session 。

这对于单个 WCF 服务器实例来说效果很好,但如果您需要扩展它以便多个 WCF 实例同时运行,情况就会变得复杂。当然,如果您使用网络层负载平衡,您通常会发现您房间中只有部分成员位于您所在的同一服务器上,这意味着当需要向所有这些成员推送消息时,只有其中一些人会真正收到通知。

除了 Azure,我一直在想我可以通过某种应用程序层负载平衡来处理它。例如,每个客户端下载 Silverlight 应用程序的 Web 服务器可能会执行原始的循环负载平衡,即“好吧,房间 x 中的每个人,您都使用 WCF 实例 1。房间 y 中的每个人,您都使用 WCF 实例 1”。 WCF 实例 2。”诸如此类的事情。

所以我有两个问题:

(1) 是否有其他更好的方法来构建此架构,以便能够使用网络层负载平衡,而不需要让应用程序了解底层基础设施?

(2) 如果我必须进行应用程序层负载平衡,在 Azure 中处理此问题的最佳方法是什么?我是否必须使用 IAAS(完整虚拟机),或者有没有办法使用 PAAS(工作角色)来做到这一点?我的理解是,独立解决 worker 角色是不可能的,这将使基于角色的方法变得困难,甚至不可能。

最佳答案

SignalR 由 Azure 服务总线提供支持,可能适合您。 http://vasters.com/clemensv/2012/02/13/SignalR+Powered+By+Service+Bus.aspx

关于wcf - Azure 上基于房间的发布/订阅应用程序的负载平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11803669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com