gpt4 book ai didi

c# - 如何将 Signalr 扩展到大量用户

转载 作者:太空狗 更新时间:2023-10-29 17:56:13 26 4
gpt4 key购买 nike

我已经阅读了很多关于在 signalr 中扩展的内容,最喜欢的似乎是在 : http://www.asp.net/signalr/overview/signalr-20/performance-and-scaling/scaleout-in-signalr即以下服务总线:- SQL- 雷迪斯- 天蓝色

问题是,甚至在文本中也有说明:“使用背板时,最大消息吞吐量低于客户端直接与单个服务器节点对话时的最大消息吞吐量。这是因为背板将每条消息转发到每个节点,因此背板可能成为瓶颈。”

我正在创建...等等...是的!一个聊天应用程序。我希望能够将其扩展到数百万用户。不管我是否做大(哈!)与否,我计划记录一步一步的过程。现在我已经准备好大部分应用程序,我想知道这个横向扩展问题。我看了这个非常有用的视频:

http://channel9.msdn.com/Events/Build/2013/3-502

跳到 55 分钟。 “自定义横向扩展”。以及其他想法,例如过滤消息总线。

现在希望你很兴奋,而不是因为我给你带来的无聊而考虑自杀......我的想法是做如下: - 每个受欢迎的房间给一个服务器 - 因此每个房间都可以轻松应对交通,信号器可以很好地向客户端广播并将消息日志存储到 GROUPS 服务器(即保存每个组的所有组消息) - 然后私有(private)消息将需要使用背板或服务器推送 - 因此,用户连接需要在 sql server 数据库中更新(足够简单),并且数据通过 ajax 而不是 signalr 发布

但是,我想探索所有选项。 (如果你有更好的想法,请发表)我也想尝试测试 REDIS 的私有(private)消息。为什么?!!因为如果我希望用户能够拥有私有(private)消息组......而用户 1,2 和 3 都非常烦人并且在服务器 1,2 和 3 上。(啊你这个小......!)为了更好尽管性能不佳,但我想实现一个 Redis 消息过滤器,以仅发送到带有客户端的服务器!

那么,我究竟在寻找什么?基本上我需要资源。我找不到任何有用的 Redis 消息总线示例(asp.net 示例没有过滤器。是的,我可以添加 AddResolverblabla 行!:))

我还需要以下示例: - 服务器到服务器 ajax 帖子:我是服务器菜鸟! - 一个负载均衡器示例,用于为每个聊天室(或只是某个页面)指定某个房间 - Redis 消息总线可以处理多少条消息?即使有过滤器也很容易成为瓶颈吗?我找不到任何带有过滤器的表演示例

我终于需要你的脑子了! ;) 如果您坐在那里认为有更好的方法,请告诉我。

非常感谢所有阅读这篇文章的人,我期待着您的回复。 (如果觉得有用,请点赞!论坛上有很多类似的问题,但没有合适的答案)

最佳答案

我打算在找到文档后开始回答这个问题。希望更多人加入!

1.

How to define a connection string to a SQL Server 2008 database?

2.

SQL Server 过滤器: http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.servicebus.messaging.sqlfilter.aspx

3。网络农场

http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx

4。 WF教程:

http://www.asp.net/web-forms/tutorials/deployment/configuring-server-environments-for-web-deployment/creating-a-server-farm-with-the-web-farm-framework


2014 年 3 月 12 日一个可能更好的解决方案是使用 memecache - facebook 基于什么


还需要看是否可以指定:使用signalr还是使用redis message bus。

还需要找redis过滤器教程

14/03

GlobalHost.DependencyResolver.UseRedis("服务器", 端口, "密码", "AppName");定义使用 redis 的服务器。需要一个过滤器

2014 年 6 月 10 日

在对横向扩展进行更多研究后,一个可能的答案是不要将服务器视为通信网络,而是独立的。服务器使用发送来更新数据库,并使用计时器,您可以在每个循环中为当前登录到该服务器的用户从数据库中获取所有必需的信息(消息等)。因此,它会更容易横向扩展。然而并不便宜。

关于c# - 如何将 Signalr 扩展到大量用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22379785/

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