在我的系统中,存在不同类型的请求,在内存成本和时间成本方面具有不同的范围。
也就是说,如果有类型的请求R1,R2 ...... R100,处理请求所需的RAM量和这些请求类型的响应时间变化很大,即使是10到10的余量100次。
对于这种情况,循环法应该是正确的方法,还是循环最终会掩盖这种情况下的大多数情况?
如果循环法不是正确的选择,那么apache上是否有更多可用的自定义选项?
答案 0 :(得分:2)
通常我会说,一旦你处理了足够多的请求,加上粘性因素,它就不值得担心,因为它会趋于平稳。
但是如果某些请求对于后端来说要贵一两个数量级,那么如果这些昂贵的请求需要更长的时间来处理或生成大的响应,您可能会考虑“bybusyness”或“bytraffic”。在较低的负载下,这将使您有更好的机会不让1个后端变得不吉利并且并行处理太多昂贵的请求(除了粘性)。
答案 1 :(得分:0)
循环法应该是这种情况的正确方法吗? 在这种情况下,循环赛最终会掩盖大多数场景吗?
我们进行了36小时运行(持续时间压力测试)和4小时运行(峰值压力测试),其中包含50个并发用户,100个并发用户以及最终350个并发用户的完整卷数据。我们尝试进行负载分配的不同虚拟机之间的CPU和RAM利用率没有任何差别。
我们进行了多次此类运行,CPU和RAM利用率之间的差异不够显着。
因此,我认为可以公平地得出结论,循环确实涵盖了很多场景,包括这个场景,并且是在这种情况下用于负载分配的正确方法。
答案 2 :(得分:0)
轮循算法以接收请求的顺序在节点之间发送请求。这是一个简单的例子。假设您有3个节点:节点A,节点B和节点C。
•第一个请求发送到节点A。
•第二个请求发送到节点B。
•第三个请求发送到节点C。
负载均衡器继续根据此顺序向服务器发送请求。听起来,流量将在节点之间平均分配。但这不是真的。
在此处详细了解更多信息:What is the problem with Round robin algorithm?