负载均衡

负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,是指将请求/数据均匀分摊到多个操作单元上执行

 

 

常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层

 【客户端层】到【反向代理层】的负载均衡,是通过DNS轮询实现的:DNS-server对于一个域名配置了多个解析ip,每次DNS解析请求来访问DNS-server,会轮询返回这些ip,保证每个ip的解析概率是相同的

 【反向代理层】到【站点层】的负载均衡,是通过nignx实现的,修改nginx.conf,可以实现多种负载均衡策略:

  1)请求轮询

  2)最少连接路由:哪个web-server的连接少,路由到哪个web-server

  3)ip哈希:ip哈希均衡方法可以使同一个用户的请求固定落到同一台web-server上

 【站点层】到【服务层】的负载均衡,是通过服务连接池实现的。

 【数据层的负载均衡,分为数据的均衡与请求的均衡

    常见的水平切分方式有:

      (1)按照range水平切分

          

        每一个数据服务,存储一定范围的数据

        优点:

          (1)规则简单,service只需判断一下uid范围就能路由到对应的存储服务

          (2)数据均衡性较好

          (3)比较容易扩展

        缺点:

          (1)请求的负载不一定均衡

      (2)按照id哈希水平切分

 

        

        

         优点:

          (1)规则简单,service只需对uid进行hash能路由到对应的存储服务

          (2)数据均衡性较好

          (3)请求均匀性较好

         缺点:

          (1)不容易扩展,扩展一个数据服务,hash方法改变时候,可能需要进行数据迁移

        

posted @ 2016-09-21 09:35  慕尘  阅读(146)  评论(0编辑  收藏  举报