用户和设计交换最频繁的方法 四层负载均衡原理( 二 )


ip_hash; # 保证每个访客固定访问一个后端服务器
server 10.168.226.1:8080 weight=1 ;
server 10.168.226.2:8080 weight=2;
注意:
ip_hash在nginx1.3版本之后才有的 ip_hash不能与backup同时使用这种策略适合有状态服务,比如session 当有服务器需要剔除,必须手动down掉 。
least_conn
把请求转发给连接数较少的后端服务器,轮询算法是把请求平均的转发给各个后端服,使它们的负载大致相同 。
【用户和设计交换最频繁的方法 四层负载均衡原理】但是,有些请求占用的时间很长,会导致所在的后端负载较高,这种情况下,least_conn这种方式就可以达到更好的负载均衡效果least_conn;
server 10.168.226.1:8080 weight=1;
server 10.168.226.2:8080 weight=2;
注意:
这种负载均衡策略适合请求处理时间长短不一致造成服务器过载的情况
第三方策略
第三方的负载均衡策略的实现需要安装第三方插件(upstream_fair)
fair安装服务器端响应时间来分配请求,响应时间段的优先分配fair;server 10.168.226.1:8080 weight=1;
server 10.168.226.2:8080 weight=2;url_hash按访问 URL 的 hash 结果来分配请求,是每个 URL 定向知道同一个后端服务器,要配合缓冲命中来使用同一个资源多次求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高以及一些资源时间的浪费 。而使用 url_hash,可以使得同一个 URL 会到达同一台服务器,一段缓存了资源,再次请求的时候,就可以从缓存中读取,需要 hash 软件包hash $request_uri; # 实现每个 URL 定向到同一个后端服务器server 10.168.226.1:8080 weight=1;
server 10.168.226.2:8080 weight=2;Nginx 的优点跨平台:Nginx 可以在 Linux 上编译运行,也可以在 window 上运行配置简单:直接可以通过简单修改配置文件,容易上手非阻塞、高并发:官网理论可以支持 5 万并发连接,在实际生产环境也可以跑到 2-3 万的并发事件驱动:采用 epoll 模型,支持更多的并发连接内存消耗小:内存和 CPU 占用率低 。(为 Apache 的 1/5-1/10)内置健康检查:Nginx 代理的后端的某台服务器宕机了,会自动不访问该机器Nginx 的缺点Nginx 仅能支持 HTTP,HTTPS,tcp,email 等协议不支持直接保存 session,可以通过 ip_hash 来支持LVS LVS 就是 Linux 虚拟(Virtual Server)服务器 。从 Linux 内核 2.4 之后,内置了 LVS 的各个功能模块,就可以直接 使用 LVS 提供的功能 。
LVS 的体系架构LVS 架构 的服务器集群系统有三个部分 组成:
最前端的负载均衡层,用 Load Balancer 表示中间的服务器集群层,用 Server Array 表示最底层的数据共享层,Shard storage 表示负载均衡机制 LVS 是四层负载均衡,建立在 OSI 模型的第四层——传输层之上,传输层有 TCP/UDP,相对于其它高层负载均衡的方法,比如 DNS 域名轮询解析,应用层负载的调度,客户端的调度等,它的效率都非常高 。

猜你喜欢