2015-10-27 106 views
0

标题说明了几乎所有事情:假设我在一个云服务中创建了3个虚拟机,并在端口80上进行负载平衡。现在有一个对云服务的请求:负载均衡器如何决定这3个虚拟机中的哪一个应该路由此请求?是否有特定的度量标准或负载均衡器是否随机路由?负载平衡器如何决定如何路由请求?

回答

3

Microsoft Azure负载均衡器是一种第4层类型的负载均衡器。 Microsoft Azure负载平衡器通过计算给定输入端点上接收到的流量的散列函数,在一组可用服务器(虚拟机)之间分配负载。散列函数是 计算,使得来自同一连接(TCP或 UDP)的所有数据包最终在同一台服务器上。 Microsoft Azure负载平衡器使用一个5元组(源IP,源端口,目标IP,目标端口, 协议类型)使用 来计算用于将流量映射到可用服务器的散列​​。散列函数的选择使得与服务器的连接分布相当随机。但是,根据流量模式, 可能会将不同连接 映射到同一台服务器。

全部细节:https://azure.microsoft.com/en-us/blog/microsoft-azure-load-balancing-services/

+0

所以,如果我理解正确,映射应该是随机?那么我只是测试了这一点:使用2个虚拟机创建云服务,在端口80上激活负载均衡,但在这两个虚拟机上设置_different_前端-html页面。当我现在在我的浏览器中访问my.cloudapp.net(并且多次尝试多次)时,我总是收到_same_前端。所以没有随机性...... – Munchkin

+0

有趣。虽然如果你从公司网络访问,那么5个元组值中的4个肯定是相同的。我希望源端口改变,但是,如果通过防火墙/代理等访问,这是确定的?我仍然从中读到,在具有公共流量的生产环境中,客户端本质上将被分配一个随机服务器,并且总体上流量将会或多或少地均匀分布。 –