我正在开发一个视频会议应用程序。我们有一个创建房间的服务器池,一个房间可以有n个用户。我在探索HAProxy和其他几种负载平衡器,但是我找不到任何解决方案。
我的要求如下
我尝试过一致散列的url_param平衡逻辑,但它是随机分配的负载。使用现代的L7负载平衡器是否可能,或者我是否需要为这个场景编写一些自定义逻辑(在某些负载均衡器中)或一个单独的应用程序?
在维护会话粘性的同时,是否有任何基于连接或CPU使用情况来平衡负载的方法?
发布于 2021-07-21 15:02:54
文档说,您可以选择像leastconn这样的算法,只有当没有持久性信息可用时,或者当连接被重新分派到另一台服务器时,这才适用。所以答案的第二部分是棍棒表。读取和其他棒关键字
所以用棍子桌子看起来是这样的:
backend foo
mode http
balance leastconn
stick store-request src
stick-table type ip size 200k expire 30m
server s1 192.168.1.1:8080
server s2 192.168.1.2:8080文档中还有更多的示例。
您需要弄清楚(或告诉我们)的是,我们如何才能根据要求知道客户想要的房间,并制作这样的桌子和规则。如果它在URL或http头中,那么它在haproxy中是完全可行的。
如果leastconn不够好,则可以使用haproxy的unix套接字CLI动态调整服务器的权重,并使用roundrobin算法。另外,可以为服务器配置代理选项,以动态设置服务器的权重。
https://stackoverflow.com/questions/68440319
复制相似问题