如何分配服务器负载

本文关键字:服务器 负载 分配 何分配 | 更新日期: 2023-09-27 17:54:05

我正在努力理解这个…

我有一个由一个服务器组成的应用程序(基本上是一个N层控制台应用程序,使用c#进行TCP异步套接字编程),一个MSSQL数据库和几个客户端。

现在的问题是成千上万的客户端同时连接到这个服务器,服务器没有有效地响应。我想让这个服务器成为分布式和可扩展的,以分配客户端的负载。

我想找出这个问题的解决办法。任何方便的解决方案都是非常值得赞赏的。

如何分配服务器负载

您对细节很了解,这不是一个简单的解决方案:但我总是避免使用负载平衡器(故障中心点,您只能有效地使用一个数据中心或区域)。

客户端是负载均衡器

相反,使用一个中心端点来列出已分配的服务器,然后让客户机随机选择一台服务器在一定时间内使用。然后,选定的服务器可以专门为该客户端提供资源,从本地远程服务器复制数据(如果还没有)。

选择的服务器将是该客户端的主服务器,数据将在那里创建,并在客户端更改服务器时复制到其他服务器。

使用这种分布式设置,您的服务器通常可以部署在世界任何地方。因此,您的客户端也可以获得更好的延迟,您可以找到价格最优惠的主机,而无需绑定到负载均衡器。

容器集群

你会发现像coreos这样的集群很有趣,但设置起来要复杂得多。但不要排除这种可能性。对于这样一个简单的控制台应用程序,调整您的解决方案并控制您自己的更简单的可扩展基础设施并不难,而不需要额外的模糊层。

我将使服务器-应用程序集群可启用,这样您就可以在不同的虚拟或物理计算机上多次启动实例。那么我会选择一台计算机作为负载均衡器。在您的情况下,一个很好的负载平衡工具是HAproxy。这个代理将平衡不同服务器上的工作负载。这将为您带来最佳的性能