DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。人们在通过浏览器访问网站时只需要记住网站的域名即可,而不需要记住那些不太容易理解的IP地址。在DNS系统中有一个比较重要的的资源类型叫做主机记录也称为A记录,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。如果你有一个自己的域名,那么要想别人能访问到你的网站,你需要到特定的DNS解析服务商的服务器上填写A记录,过一段时间后,别人就能通过你的域名访问你的网站了。DNS除了能解析域名之外还具有负载均衡的功能,下面是利用DNS工作原理处理负载均衡的工作原理图:
简单一句话: DNS解析时多添加几个不同IP的A记录;
例如:
上图中我给域名解析到两个不同的ip,大概等十分钟后我们ping 一下的结果如下:
可以看到已经实现了一个域名解析到多个ip了。
另外说明:图一中有一个线路没有填写所以就是默认,你可以自定义给不同的线路指定不同的ip。
1 . 配置简单,无成本费用;
2 . 将负载均衡工作交给DNS服务器,省去管理麻烦;
1 . 记录的添加与修改是需要一定时间才能够生效的(因为DNS缓存了A记录)。一旦有一台服务器坏了需要下线,即使修改了A记录,要使其生效也需要较长的时间,这段时间,DNS任然会将域名解析到已下线的服务器上,最终导致用户访问失败。
2 . 不能按需分配负载,只能采用最简单轮训算法,DNS并不知道各服务器的真实负载情况,所以负载效果不是很好;
3 . 可能造成额外网络问题, 为了使DNS服务器和其他DNS服务器及时交互,保证DNS及时更新,使地址能随机分配,一般要将DNS刷新时间设置较小,太小又会将DNS流量增大造成额外网络问题;
实际情况:
实际项目部署中,一般将部分服务器使用DNS解析,利用域名解析作为第一级负载均衡,再在服务器中使用Nginx,slb负载均衡作为第二级负载均衡,然后将请求转发到真实服务器上,最终完成请求;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。