负载均衡
Posted 注销了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡相关的知识,希望对你有一定的参考价值。
单服务器能力有限,需要横向扩展。多服务器如何作为一个整体对外提供服务?
1.需要隐藏集群细节,让客户端感觉到只有一台服务器在提供服务
2.需要对各个服务器的负载做一个均衡
报文结构:
请求:
返回
对于问题2,假设只做最简单的轮询。
对于问题1,由于整个服务集群对外只有一个IP,所以显然请求不能直接到达具体服务器,中间必然经过LB,LB这时候有两种做法:
1.修改IP数据报,将目的地更改具体服务器IP,原地址保留为客户端地址,让LB作为整个服务集群的网关,服务器处理完之后,返回报文也经过LB,LB这时候将IP数据报中的源地址再次修改为自己的外网IP;
2.由于做法1所有的返回都要经过LB,LB压力很大,并且收发都需要LB来做修改报文的操作,LB压力更大。所以要让LB不处理服务器的返回,并且LB也不再作为服务器集群的网关。但是无论如何返回的IP数据报中的源地址必须得到修改,LB如果不修改,服务器端也不修改,那么必然要让LB的IP地址和服务器集群中所有服务器都是同一个IP,这个概念叫做VIP,具体是怎么做呢,通常一一张网卡的回环地址是127.0.0.1,我们将其全部修改为某个比如206.217.5.11,这样便不再需要修改返回的IP数据报了。但是新的问题来了。由于LB不再是服务集群的网关,他们在网络中的地位是平级的,这时IP又是一样的,那么当请求来临时,路由器如何找到LB?其实很简单,关停所有服务器的ARP广播,仅仅让LB做ARP广播,请求来临时,路由器结息以太网帧,只会找到LB的IP地址。该问题也就由此解决。
以上是关于负载均衡的主要内容,如果未能解决你的问题,请参考以下文章