我们知道单机的承载能力和垂直扩展能力都是有上限的,它无法满足高并发高吞吐量的场景,所以常使用水平扩展也就是增加机器数量来满足需求。但是不同机房、同机房不同年代上架的机器的性能也是千差万别的,甚至业务之前申请到的都是8核16G内存的配置脱销了(申请时抢不到),我们只能放低身位选择4核8G内存的服务器,那就注定了不同的服务器所能承担的吞吐量不一样。问题就来了,一只木桶能盛多少水,并不取决于最长的那块木板,而是取决于最短的那块木板。幸运的是,前人发明了负载均衡算法,从而有效解决了这个问题。
负载均衡算法是一种将数据流量按需分配给服务器去响应的算法,通常有简单轮询、加权轮询、粘性Session(一致性哈希)、最少连接数等等算法,本文不会讲解这些算法的具体原理,而是从实践出发,接下来就和我一起往下看吧。
1、负载均衡的好处只有减少机器性能差别产生的木桶效应吗?
答案肯定是否定的。
不少运营商和公司的办公职场都会将域名解析的结果进行缓存,减少递归查询的开销,然而缓存时间我们是不可控的,当我们急需修改解析记录止损时,并不能立即生效,效果显示差强人意。
有了负载均衡就不一样了,我们将域名通过A记录解析到负载均衡节点上也就是VIP(virtual IP address)节点,再由VIP节点转发到后端的实例上,当需要变更分流规则时,只需要变更分流规则的路由映射信息就能立即见效。
在京东,一个域名可以有多