一文详解 LVS、Nginx 及 HAProxy 事变道理
LVS 的弱点
Nginx Nginx 是一个强盛的 Web 处事器软件,用于处理赏罚高并发的 HTTP 哀求和作为反向署理处事器做负载平衡。具有高机能、轻量级、内存耗损少,强盛的负载平衡手段等上风。 Nignx 的架构计划 相对付传统基于历程或线程的模子(Apache就回收这种模子)在处理赏罚并发毗连时会为每一个毗连成立一个单独的历程或线程,且在收集可能输入/输出操纵时阻塞。这将导致内存和 CPU 的大量耗损,由于新起一个单独的历程或线程必要筹备新的运行时情形,包罗堆和栈内存的分派,以及新的执行上下文,虽然,这些也会导致多余的 CPU 开销。最终,会因为过多的上下文切换而导致处事器机能变差。 反过来,Nginx 的架构计划是回收模块化的、基于变乱驱动、异步、单线程且非阻塞。 Nginx 大量行使多路复用和变乱关照,Nginx 启动往后,会在体系中以 daemon 的方法在靠山运行,个中包罗一个 master 历程,n(n>=1) 个 worker 历程。全部的历程都是单线程(即只有一个主线程)的,且历程间通讯首要行使共享内存的方法。 个中,master 历程用于吸取来自外界的信号,并给 worker 历程发送信号,同时监控 worker 历程的事变状态。worker 历程则是外部哀求真正的处理赏罚者,每个 worker 哀求彼此独立且划一的竞争来自客户端的哀求。哀求只能在一个 worker 历程中被处理赏罚,且一个 worker 历程只有一个主线程,以是同时只能处理赏罚一个哀求。(道理同 Netty 很像) Nginx 负载平衡 Nginx 负载平衡首要是对七层收集通讯模子中的第七层应用层上的 http、https 举办支持。 Nginx 是以反向署理的方法举办负载平衡的。反向署理(Reverse Proxy)方法是指以署理处事器来接管 Internet 上的毗连哀求,然后将哀求转发给内部收集上的处事器,并将从处事器上获得的功效返回给 Internet 上哀求毗连的客户端,此时署理处事器对外就示意为一个处事器。 Nginx 实现负载平衡的分派计策有许多,Nginx 的 upstream 今朝支持以下几种方法:
Nginx 的利益
Nginx 的弱点
HAProxy HAProxy 支持两种署理模式 TCP(四层)和HTTP(七层),也是支持假造主机的。 HAProxy 的利益可以或许增补 Nginx 的一些弱点,好比支持 Session 的保持,Cookie 的引导;同时支持通过获取指定的 url 来检测后端处事器的状态。 HAProxy 跟 LVS 相同,自己就只是一款负载平衡软件;纯真从服从上来讲 HAProxy 会比 Nginx 有更精彩的负载平衡速率,在并发处理赏罚上也是优于 Nginx 的。 HAProxy 支持 TCP 协议的负载平衡转发,可以对 MySQL 读举办负载平衡,对后端的 MySQL 节点举办检测和负载平衡,各人可以用 LVS+Keepalived 对 MySQL 主从做负载平衡。 HAProxy 负载平衡计策很是多:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地点保持)、RI(哀求URL)、rdp-cookie(按照cookie)。 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |