gpt4 book ai didi

silverlight - SignalR - NLB 服务器更改和建议的横向扩展方式

转载 作者:行者123 更新时间:2023-12-04 02:10:34 26 4
gpt4 key购买 nike

我有 silverlight 网络应用程序。这个 web 应用程序在 4 个服务器中运行,在它们前面有一个 NLB。我需要在我的网络应用程序中使用 SignalR。

让我们考虑一下这个场景。Client#1 连接到 Server#1,一切正常。他们通过集线器完美地相互通信。然后 NLB 突然将 Client#1 分配给 Server#2。

现在,Connection 和 Hub 会怎样?他们将如何沟通?Client#1 和 Server#1 之间的连接是如何设置的?

PS:我对NLB不是很了解。也许这是个愚蠢的问题,但我找不到好的解释。

我的第二个问题是,横向扩展(Azure、SQL、Redis)中哪种方式最适合客户端可能不多(少于 10K)的 .NET Silverlight 应用程序?

不是:我在我的应用程序中高度使用 MS SQL、SQL Server。

最佳答案

看完这个信息量很大的video ,我找到了问题的答案。

基本上,当客户端被分配到其他服务器节点时,新连接将自动建立。旧连接已丢失,但无论如何,如果您使用的是背板,则可以通知所有客户端。因此,这不是问题。

hub 对象也不是问题,因为它是 transient 对象,即在每个新的单个操作中都会创建一个新的 hub 对象。因此,这也不是问题。服务器和客户端之间没有持久的集线器对象。即使只有一台服务器和一台客户端,每次操作都会销毁和创建集线器。

唯一的问题是,如果您正在使用群组,那么当客户端连接到其他服务器时,群组信息会丢失。服务器不维护组列表或组成员资格。因此,在这种情况下,您需要使用数据库,并且可以从数据库手动更新。当客户端和新服务器建立新的连接后,你可以在数据库中搜索这个客户端,如果你找到了那个客户端的组信息,那么你可以再次手动重新注册到那个组。

对于背板的选择,没有最快或最好的方法。没有人可以说这种方式在 Azure 服务总线、Redis、SQL 中更快或更好。这真的取决于你的应用程序。如果您已经在使用 MS Azure 服务,请为您的 Web 应用选择 Azure 实现。如果您在您的应用程序中使用 Redis,请选择 Redis。否则您可以选择 SQL。正如我所说,它们或多或少都是一样的。选择最适合您的网络应用的一款。

这些都是从SignalR的视频和官网得到的page.该站点是最好的 SignalR 教程和 api 指南站点之一。强烈建议通读所有部分。

关于silverlight - SignalR - NLB 服务器更改和建议的横向扩展方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38890165/

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