架构: 负载均衡

引言

  • 本文介绍几种负载均衡架构及算法。

总体策略

  • DNS负载均衡用于实现地理级别的负载均衡;

  • 硬件负载均衡用于实现集群级别的负载均衡;

  • 软件负载均衡用于实现机器级别的负载均衡;

73f27dff6327bb08c1db69ee790ef903.png

硬件负载均衡

  • 类似路由器、交换机;

  • 优点:

    • 支持各种负载均衡算法;

    • 支持100万并发(一般软件负载均衡也就支持10万并发);

    • 很多设备同时支持负载均衡、防火墙、防DDOS攻击功能;

  • 缺点:

    • 价格高昂;

软件负载均衡

  • 优点:

    • 便宜;

    • 维护和部署简单(安装Ngnix软件即可);

  • 缺点:

    • 并发量远小于硬件负载均衡,Linux服务器上装一个Nginx大概能到5万每秒;

    • 一般不具备防火墙、防DDOS攻击等功能;

ae65fe7944c9be37d8fafc344a0a09de.png

DNS负载均衡

  • 实现地理级别的负载均衡;

  • DNS服务器将域名解析为最靠近用户的主机的IP地址,提升访问速度;

  • 缺点:

    • DNS缓存不能及时更新,有可能定位到一个已经移走的主机;

    • 除了映射IP地址,没有提供其他的负载均衡算法和策略;

08ecd0cb06025bd9f1492f8ab0ed7982.png

均衡算法

  • 轮询:

    • 负载均衡系统收到请求后,按照顺序轮流分配到服务器上;

    • 算法简单,没有考虑机器的状态;

  • 加权轮询:

    • 分给32核机器的概率是分给16核机器的概率的两倍;

    • 考虑了机器性能,但无法根据机器状态动态调整;

  • 负载最低优先:

    • 根据及其具体状态决定负载均衡策略;

    • 考虑:机器连接数、机器的HTTP连接数、CPU占用率、IO占用率;

  • 性能最佳优先:

    • 根据及其具体状态决定负载均衡策略;

    • 考虑:服务器响应时间;

  • Hash:

    • 对源IP地址hash决定任务分配到哪台服务器;

    • 对session ID进行hash决定任务分配到哪台服务器,可以保证同一个会话的包都发送到同一台服务器处理;

source: //changsiyuan.github.io/2018/07/15/2018-7-15-Architecture-4

d797c6fe66a4d4ea8bc2686a0492d0ce.png

分享&在看

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值