关于负载均衡的疑问

2018-01-30 16:31:11 +08:00
 edison111cry
网站请求的量比较大,假设我配有四台服务器,分别是如下 IP:
552.110.110.1
552.110.110.2
552.110.110.3
552.110.110.4

域名是:www.example.com
以下两种哪个是负载均衡,哪个效果好

1:通过后台的添加解析,把域名分别映射到这四个 IP 上:

www IN A 552.110.110.1
www IN A 552.110.110.2
www IN A 552.110.110.3
www IN A 552.110.110.4

2:把域名添射到 552.110.110.1 这台机器的 nginx 上,利用 nginx 的反向代理:

upstream myServer {
server 552.110.110.1;
server 552.110.110.2;
server 552.110.110.3;
server 552.110.110.4;

}
2078 次点击
所在节点    问与答
9 条回复
yxwzaxns
2018-01-30 16:36:17 +08:00
2
jadec0der
2018-01-30 16:48:44 +08:00
2,灵活的多
1 是在哪看的?没见过这么搞的
loveCoding
2018-01-30 16:51:04 +08:00
nginx 来分发吧 , 比较可控 ,也有日志
swulling
2018-01-30 16:53:21 +08:00
两种方法都不好

第一种
1. 首先 DNS 的解析是不均衡的,四台机器的流量不均等
2. 任意一台机器挂掉,如果没有及时从 DNS 中摘除,那么你将会损失大约 25%的流量
3. DNS 摘除的效率不高,虽然大部分情况下可以做到分钟级别,但是难保哪些 DNS Server 无视你的 ttl,几天才生效的都有

第二种
1. 如果流量过大,552.110.110.1 这台机器的负载显然超过其他三台
2. 如果 552.110.110.1 挂了,你的服务就 100%挂了


适合小网站的解决方案(之一哈,选个简单的,方法太多了)

在 552.110.110.1 和 552.110.110.2 上使用 keepalived + vip + nginx,当然这样也有流量不均匀的情况,可以通过 nginx 的 weight,给 1 和 2 少调低点流量比例即可。
zlfzy
2018-01-30 16:54:09 +08:00
2,nginx 不行了就上 lvs
swulling
2018-01-30 16:54:37 +08:00
其实最简单的是使用云服务商提供的 Load Balance 服务。。你只需要配后端就完了。。

或者你自己弄 LVS 集群,太麻烦不推荐
gamexg
2018-01-30 17:05:17 +08:00
2

故障时 dns 由于存在各级不标准缓存切换比较坑,另外 dns 负载并不均衡。

当然流量大到 nginx 撑不住为了省成本可以考虑上 dns,但是基本不肯能碰到。
edison111cry
2018-01-30 17:25:10 +08:00
@swulling 就是买类似于阿里云的负载均衡的服务这种了吧?
keepersay
2018-01-30 18:10:33 +08:00
量大上 LVS,小选方案 2,跨机房的容灾可以使用 DNS 解析

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/427149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX