`
zhengdl126
  • 浏览: 2542549 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

19个心得 明明白白说Linux下的负载均衡

阅读更多

一、目前网站架构一般分成负载均衡层、web层和数据库层,我其实一般还会多加一层,即文件服务器层,因为现在随着网站的PV越来越多,文件服务器的压力也越来越大;不过随着moosefs、DRDB+Heartbeat的日趋成熟,这问题也不大了.网站最前端的负载均衡层称之为Director,它起的是分摊请求的作用,最常见的就是轮询。

  二、F5是通过硬件的方式来实现负载均衡,它较多应用于CDN系统,用于squid反向加速集群的负载均衡,是专业的硬件负载均衡设备,尤其适用于每秒新建连接数和并发连接数要求高的场景;LVS和Nginx是通过软件的方式来实现的,但稳定性也相当强悍,在处理高并发的情况也有相当不俗的表现。

  三、Nginx对网络的依赖较小,理论上只要ping得通,网页访问正常,nginx就能连得通,nginx同时还能区分内外网,如果是同时拥有内外网的节点,就相当于单机拥有了备份线路;lvs就比较依赖于网络环境,目前来看服务器在同一网段内并且lvs使用direct方式分流,效果较能得到保证。

  四、目前较成熟的负载均衡高可用技术有LVS+Keepalived、Nginx+Keepalived,以前Nginx没有成熟的双机备份方案,但通过shell脚本监控是可以实现的,有兴趣的可具体参考我在51cto上的项目实施方案;另外,如果考虑Nginx的负载均衡高可用,也可以通过DNS轮询的方式来实现,有兴趣的可以参考张宴的相关文章

  五、集群是指负载均衡后面的web集群或tomcat集群等,但现在的集群意义泛指了整个系统架构,它包括了负载均衡器以及后端的应用服务器集群等,现在许多人都喜欢把Linux集群指为LVS,但我觉得严格意义上应该区分开。

  六、负载均衡高可用中的高可用指的是实现负载均衡器的HA,即一台负载均衡器坏掉后另一台可以在<1s秒内切换,最常用的软件就是Keepalived和Heatbeat,成熟的生产环境下的负载均衡器方案有Lvs+Keepalived、Nginx+Keepalived。

 七、LVS的优势非常多:①抗负载能力强;②工作稳定(因为有成熟的HA方案);③无流量;④基本上能支持所有的应用,基于以上的优点,LVS拥有不少的粉丝;但世事无绝对,LVS对网络的依赖性太大了,在网络环境相对复杂的应用场景中,我不得不放弃它而选用Nginx。

  八、Nginx对网络的依赖性小,而且它的正则强大而灵活,强悍的特点吸引了不少人,而且配置也是相当的方便和简约,小中型项目实施中我基本是考虑它的;当然,如果资金充足,F5是不二的选择。

  九、大型网站架构中其实可以结合使用F5、LVS或Nginx,选择它们中的二种或三种全部选择;如果因为预算的原因不选择F5,那么网站最前端的指向应该是LVS,也就是DNS的指向应为lvs均衡器,lvs的优点令它非常适合做这个任务。重要的ip地址,最好交由lvs托管,比如数据库的ip、webservice服务器的ip等等,这些ip地址随着时间推移,使用面会越来越大,如果更换ip则故障会接踵而至。所以将这些重要ip交给lvs托管是最为稳妥的。

  十、VIP地址是Keepalived虚拟的一个IP,它是一个对外的公开IP,也是DNS指向的IP;所以在设计网站架构时,你必须向你的IDC多申请一个对外IP

  十一、在实际项目实施过程中发现,Lvs和Nginx对https的支持都非常好,尤其是LVS,相对而言处理起来更为简便。

  十二、在LVS+Keepalived及Nginx+Keepalived的故障处理中,这二者都是很方便的;如果发生了系统故障或服务器相关故障,即可将DNS指向由它们后端的某台真实web,达到短期处理故障的效果,毕竟广告网站和电子商务网站的PV就是金钱,这也是为什么要将负载均衡高可用设计于此的原因;大型的广告网站我就建议直接上CDN系统了。
 十三、现在Linux集群都被大家神话了,其实这个也没多少复杂;关键看你的应用场景,哪种适用就选用哪种,Nginx和LVS、F5都不是神话,哪种方便哪种适用就选用哪种。

  十四、另外关于session共享的问题,这也是一个老生长谈的问题了;Nginx可以用ip_hash机制来解决session的问题,而F5和LVS都有会话保持机制来解决这个问题,此外,还可以将session写进数据库,这也是一个解决session共享的好办法,当然这个也会加重数据库的负担,这个看系统架构师的取舍了。

  十五、我现在目前维护的电子商务网站并发大约是1000左右,以前的证券资讯类网站是100左右,大型网上广告大约是3000,我感觉web层的并发越来越不是一个问题;现在由于服务器的强悍,再加上Nginx作web的高抗并发性,web层的并发并不是什么大问题;相反而言,文件服务器层和数据库层的压力是越来越大了,单NFS不可能胜任目前的工作,现在好的方案是moosefs和DRDB+Heartbeat+NFS;而我喜欢的Mysql服务器,成熟的应用方案还是主从,如果压力过大,我不得不选择oracle的RAC双机方案。

  十六、现在受张宴的影响,大家都去玩Nginx了(尤其是作web),其实在服务器性能优异,内存足够的情况下,Apache的抗并发能力并不弱,整个网站的瓶颈应该还是在数据库方面;我建议可以双方面了解Apache和Nginx,前端用Nginx作负载均衡,后端用Apache作web,效果也是相当的好。

  十七、Heartbeat的脑裂问题没有想象中那么严重,在线上环境可以考虑使用;DRDB+Heartbeat算是成熟的应用了,建议掌握。我在相当多的场合用此组合来替代EMC共享存储,毕竟30万的价格并不是每个客户都愿意接受的。

  十八、无论设计的方案是多么的成熟,还是建议要配置Nagios监控机来实时监控我们的服务器情况;邮件和短信报警都可以开启,毕竟手机可以随身携带嘛;有条件的还可以购买专门的商业扫描网站服务,它会每隔一分钟扫描你的网站,如果发现没有alive会向你的邮件发警告信息或直接电话联系。

  十九、至少网站的安全性问题,我建议用硬件防火墙,比较推荐的是华赛三层防火墙+天泰web防火墙,DDOS的安全防护一定要到位;Linux服务器本身的iptables和SElinux均可关闭,当然,端口开放越少越好。

分享到:
评论

相关推荐

    弘积负载均衡简易运维手册

    弘积负载均衡是一款高效能的负载均衡解决方案,其功能与F5类似,旨在优化网络流量分配,确保服务的高可用性和性能。以下是手册中涉及的关键知识点的详细解释: 1. **配置节点(类似F5 poolmembers)**:这是将后端...

    Windows Server 2019 负载均衡(NLB)安装部署-图文

    总之,Windows Server 2019的NLB提供了强大的负载均衡能力,帮助企业在高流量场景下保持服务的稳定性和可用性。正确配置和管理NLB,能够显著提升IT基础设施的效率和可靠性。在实际部署中,务必按照最佳实践进行,...

    LVS+Keepalived实现高可用负载均衡

    ### LVS+Keepalived 实现高可用负载均衡 #### 一、原理 **1、概要介绍** 在现代互联网架构中,为了提高系统的稳定性和可靠性,常常采用高可用(High Availability, HA)架构设计。其中,LVS(Linux Virtual ...

    inux下apache负载均衡与JBoss集群配

    总结来说,配置Linux下的Apache负载均衡与JBoss集群,主要包括以下几个步骤:安装和配置JDK,安装和配置JBoss,设置Apache服务器,以及配置mod_jk模块和工作者属性。这种配置能够提高系统的稳定性和处理能力,是大型...

    F5服务器负载均衡测试方案

    ### F5服务器负载均衡测试方案知识点详解 #### 一、测试方案说明 - **项目概况**:本项目旨在为四台服务器实施负载均衡,并预留扩展空间以适应未来可能增加的应用需求。 - **测试周期**:具体时间未给出,但计划在...

    radware负载均衡常用查询命令

    ### Radware负载均衡常用查询命令详解 #### 一、查看接口地址 - **命令**: `appdirector#netip` - **功能**: 显示Radware负载均衡器上的所有网络接口及其配置信息。 - **示例输出**: - `InterfaceTable` - `IP...

    医院行业数据库负载均衡及数据零丢失容灾参考方案

    ### 医院行业数据库负载均衡及数据零丢失容灾参考方案关键知识点解析 #### 一、面临的问题 在医院行业中,数据库系统面临着多种挑战。例如,XXX附属第一医院的数据库系统就存在以下问题: 1. **多系统依赖单一...

    第二节 微服务之负载均衡组件Ribbon1

    - Nginx 是一种广泛应用的服务端负载均衡器,它接收来自用户的请求,根据预设的负载均衡策略(例如轮询、最少连接数等)选择一个后端服务进行转发。在这个比喻中,前台小姐姐就像是Nginx,负责分配用户(请求)给...

    LTE-MLB负载均衡功能介绍.docx编程资料

    负载均衡的过程主要包括触发模式、选择目标小区以及负载均衡执行三个关键阶段。下面将分别介绍这些阶段的具体细节。 ##### 3.1 触发模式 触发模式决定了负载均衡何时被激活。根据不同的触发条件,LTE-MLB可以采用...

    十步图文搞定负载均衡配置

    负载均衡是一种网络技术,用于将流入的网络流量分发到多个服务器,以优化资源使用、最大化吞吐量、最小化响应时间以及防止过载。在本文中,我们将通过十步骤来详细讲解如何配置负载均衡,确保您能轻松掌握这一关键...

    网站负载均衡解决方案.doc

    网站负载均衡解决方案 ...19. 负载均衡的安全性:需要考虑到安全性问题,例如防止DDoS攻击、SQL injection等。 20. 负载均衡的监控和维护:需要对负载均衡系统进行实时监控和维护,以确保系统的稳定运行。

    网络优化5G负载均衡脚本.pdf

    设置为`INTER_FREQ_CONNECTED_MLB_SW-1`意味着启用了跨频段连接状态下的负载均衡。 #### 二、负载均衡触发模式配置 接下来,我们需要配置负载均衡的触发模式,这可以通过以下命令实现: ```plaintext MOD NRCELLMLB...

    F5负载均衡设备运维指导手册.pdf

    通过上述知识点的详细介绍,我们可以看到《F5负载均衡设备运维指导手册》提供了非常详尽的指导信息,涵盖了从设备初始化到日常运维的各个方面,对于F5 LTM设备的运维人员来说是一份极其宝贵的资料。

    Radware AppDirector负载均衡器维护手册

    本手册旨在提供关于Radware AppDirector负载均衡器的全面维护指南,包括配置管理、性能监控、安全设置等多个方面。 #### 二、保存配置文件 - **功能描述**:从1.06.09版本开始,所有配置文件均为文本格式,可直接...

    Radware AppDirector负载均衡器指导书2.11v1.0

    ### Radware AppDirector负载均衡器知识点详解 #### 一、Radware AppDirector产品介绍 **1.1 AppDirector产品概述** Radware AppDirector是一款高级负载均衡解决方案,它提供了灵活且强大的应用交付服务,旨在...

    Java使用Gateway自定义负载均衡过滤器

    Java 使用 Gateway 自定义负载均衡过滤器是指在 Java 项目中使用 Spring Cloud Gateway 框架来实现自定义的负载均衡过滤器,以解决多实例环境下的路由问题。 知识点一:Gateway 框架简介 Gateway 框架是 Spring ...

    高并发系统架构(LVS负载均衡、Nginx、共享存储、队列缓存)04.LVS负载均衡深入进阶实战 共13页.pptx

    高并发架构实战案例分享-概述 共19页.pptx02.Piranha安装快速搭建LVS负载均衡集群 共16页.pptx03.LVS负载均衡DR模式安装调试介绍 共13页.pptx04.LVS负载均衡深入进阶实战 共13页.pptx05.LVS调度策略及负载均衡原理...

    高并发系统架构(LVS负载均衡、Nginx、共享存储、队列缓存)02.Piranha安装搭建LVS负载均衡集群共16页.pptx

    高并发架构实战案例分享-概述 共19页.pptx02.Piranha安装快速搭建LVS负载均衡集群 共16页.pptx03.LVS负载均衡DR模式安装调试介绍 共13页.pptx04.LVS负载均衡深入进阶实战 共13页.pptx05.LVS调度策略及负载均衡原理...

    高并发系统架构(LVS负载均衡、Nginx、共享存储、队列缓存)05.LVS调度策略及负载均衡原理深入 共16页.pptx

    高并发架构实战案例分享-概述 共19页.pptx02.Piranha安装快速搭建LVS负载均衡集群 共16页.pptx03.LVS负载均衡DR模式安装调试介绍 共13页.pptx04.LVS负载均衡深入进阶实战 共13页.pptx05.LVS调度策略及负载均衡原理...

Global site tag (gtag.js) - Google Analytics