HTTP服务高可用负载均衡
Posted 钢铁直男兽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP服务高可用负载均衡相关的知识,希望对你有一定的参考价值。
根据时间来看看,HTTP服务的高可用和负载均衡是如何发展的
1. 早期DNS轮询方案
早期互联网应用HTTP服务器直接暴露在互联网上, 非常简陋
例如一个服务器放一个jboss, 一个服务器一个IP, 这些IP都是公网IP
在DNS服务器上配置域名解析,来进行负载均衡
架构图
优点
服务架构极其简单
扩容也非常容易
缺点
无法做到高可用, 任何一台服务器宕机都会影响一部分用户
服务器扩缩容具有延迟性,DNS配置更新有延迟,还需要传播, 延迟更大
占用大量的公网IP
2. 高可用反向代理
后来随着技术的发展出现了nginx, keepalived, VIP等技术, HTTP服务才变得真正的高可用起来
架构图
要理解keepalived的作用需要了解一下ARP协议
https://www.zhihu.com/question/34822368/answer/156932231
优点
真正的高可用任意nginx,任意server 出现问题,可以随时调整流量
随意扩缩容, 对外部透明
缺点
nginx服务器只会有一个在工作, 另外一个nginx总是在standby状态,浪费了硬件资源
单个nginx服务器的连接数也是有上限的, 只能承载1w-5w左右的连接数
3. 多层高可用反向代理
为了解决上面nginx的并发不足问题
有一种头疼医头脚疼医脚的办法, 把对外的VIP设备从nginx换成lvs或者F5
架构图
优点
并发数量可以达到10w级别
缺点
其实还没有解决自由扩容的问题, 超过10w的并发还是无法处理
4. DNS轮询+多层高可用反向代理
架构图
DNS会使用轮询或者随机或者就近访问之类的规则, 将其中某个VIP返回给客户端, 这样理论上就可以支持无限的连接数, 顶级互联网公司就是使用这种架构
但如果VIP要停用的话, 要提前向DNS提交配置
lvs+keepalived解决的是VIP的高可用问题
优点
在接入层上增加了DNS轮训技术, 理论上可以支持无限的横向扩展
缺点
DNS解析VIP的修改有延迟
成本高, 而且有一半的LVS是待命状态
5. DNS轮询+多层高可用反向代理+LVS双网卡
架构图
每台LVS(或者F5)配置了双网
配置两个VIP, 分别将流量分给两个LVS
当某个LVS宕机, 另外一台LVS即可将所有流量承接过去
这样既做到了接入层的高可用, 又不至于浪费一个LVS空转
优点
完全的高可用
缺点
成本大
DNS更新配置延迟较大
以上讨论了HTTP服务的高可用技术发展
从单体架构, 到高可用高并发无限扩容的架构 不是一蹴而就的
架构的选择需要通过网站的一步一步发展才走到现在的样子
今后肯定还会有更复杂更强大的架构设计, 以上只是我在有限的职业生涯中的经验总结
钢铁直男兽
钢铁直男兽
以上是关于HTTP服务高可用负载均衡的主要内容,如果未能解决你的问题,请参考以下文章
[转] HaproxyKeepalived双主高可用负载均衡