DNS轮询,一个域名配多个IP实现负载均衡的研究

背景

研究一下 “DNS轮询” 的东西,并不是一个域名只能绑定一个IP,一个域名可以绑定多个IP,如下图所配置的。那就能利用DNS这个特点进行负载均衡。

注意它的负载均衡并不是每次请求都切换IP,通常访问者的计算机访问这个域名在很长一段时间内会得到相同的IP,除非清除DNS缓存重新获取可能会变,如图2就是通过 ipconfig /flushdns 实现了清除DNS缓存,从而获取了不同的IP

从宏观上说,全国各地,或者世界各地的访问者,通过DNS配置多个IP,获取了不同的解析,从而达到了负载均衡(但注意这种负载均衡的策略应该不是 “轮询”,对于同一个访问者的计算机,应该是长时间内都是路由到相同IP的机器上的)

在这里插入图片描述

在这里插入图片描述

详细的测试方法

写一个springboot的程序,然后打包部署到如图213和232两台机器。springboot程序暴露一个rest接口,往控制台打印日志。用80端口启动后检查各自访问正常:curl http://localhost:80/test

@GetMapping("/test")
public String test(HttpServletRequest request) {
    LocalDateTime dateTime = LocalDateTime.now();
    System.out.println("ok," + dateTime);
    return "ok," + dateTime;
}

启动脚本:

nohup java -jar dns-lunxun-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev &
tail -100f nohup.out

接下来配置DNS,配置两条A记录到213和232服务器。

tail -100f nohup.out 追踪并follow日志

在不同电脑上访问 http://www.你的域名.com/test 直至尝试出在两台机器的日志中都看到打印记录。有时比较难尝试出来,可以多试一下,甚至网址发到手机上,用4G网络访问,总会出现域名被解析为不相同的IP的情况。

上面我是配了2条的A记录,我觉得配CNAME 和A记录没什么区别,所以并不是DNS要配A记录才能实现 “DNS轮询”,应该都是可以的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值