Questions tagged «round-robin»



5
通过TTL加权轮循-可能吗?
我目前使用DNS轮询进行负载平衡,效果很好。记录看起来像这样(我的TTL为120秒) ;; ANSWER SECTION: orion.2x.to. 116 IN A 80.237.201.41 orion.2x.to. 116 IN A 87.230.54.12 orion.2x.to. 116 IN A 87.230.100.10 orion.2x.to. 116 IN A 87.230.51.65 我了解到并不是每个ISP /设备都以相同的方式对待这种响应。例如,某些DNS服务器随机旋转地址,或始终循环访问它们。有些只是传播第一个条目,而另一些则通过查看IP地址来确定哪个最好(在区域附近)。 但是,如果用户群足够大(分布在多个ISP等上),则可以很好地保持平衡。从最高负载到最低负载的服务器的差异几乎都不超过15%。 但是,现在我遇到的问题是,我正在向系统中引入更多服务器,而并非所有服务器都具有相同的容量。 我目前只有1 Gbps服务器,但我想同时使用100 Mbps和10 Gbps服务器。 因此,我想介绍一种权重为100的10 Gbps服务器,权重为10的1 Gbps服务器和权重为1的100 Mbps服务器。 之前,我曾两次添加服务器以向它们带来更多流量(效果很好,带宽几乎增加了一倍)。但是将10 Gbps服务器100次添加到DNS有点荒谬。 所以我考虑使用TTL。 如果我给服务器A提供240秒的TTL,给服务器B仅提供120秒(这大约是用于轮询的最小时间,因为如果指定了较低的TTL,则许多DNS服务器都设置为120(所以我已经听说过))。我认为这样的事情应该在理想的情况下发生: First 120 seconds 50% of requests get server A -> …


2
持久性负载平衡最佳做法
我们运行一个Web应用程序,为越来越多的客户端提供Web API。首先,客户通常是家庭,办公室或其他无线网络,这些用户将分块的http上传文件提交到我们的API。现在,我们开始涉足更多的移动客户端。文件的大小从几千到几千个不等,分解成较小的块,然后在我们的API上重新组合。 当前的负载平衡是在两层上执行的,首先,我们使用轮询DNS来为api.company.com地址通告多个A记录。在每个IP上,我们都托管一个Linux LVS:http : //www.linuxvirtualserver.org/,负载均衡器查看请求的源IP地址,以确定将连接传递给哪个API服务器。此LVS盒配置有心跳信号,以相互接管外部VIP和内部网关IP。 最近,我们看到了两个新的错误情况。 第一个错误是客户端从一个LVS振荡或迁移到另一个中载。这进而导致我们的负载平衡器失去对持久连接的跟踪,并将流量发送到新的API服务器,从而破坏了两个或更多服务器之间的分块上传。我们的意图是使api.company.com(我们将其设置为1小时)的Round Robin DNS TTL值由下游缓存名称服务器,OS缓存层和客户端应用程序层使用。我们上载的大约15%会发生此错误。 我们看到的第二个错误要少得多。客户端将启动到LVS盒的流量,并路由到它后面的realserverA。此后,客户端将通过LVS框无法识别的新源IP地址进入,从而将正在进行的流量也路由到该LVS后面的realserverB。 鉴于上文所述的架构,我想知道人们在使用更好的方法后会遇到什么经验,该方法可以使我们更优雅地处理上述每种错误情况? 编辑5/3/2010: 这看起来像我们需要的。源IP地址上的加权GSLB哈希。 http://www.brocade.com/support/Product_Manuals/ServerIron_ADXGlobalServer_LoadBalancingGuide/gslb.2.11.html#271674
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.