一、目前网站架构一般分成负载均衡层、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均可关闭,当然,端口开放越少越
- 浏览: 1059720 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
发表评论
-
2018071904积累
2018-07-19 10:04 457https://www.imooc.com/article ... -
201806182117
2018-06-18 21:19 470https://blog.csdn.net/mosheng ... -
2018020508积累
2018-05-08 19:14 410https://blog.csdn.net/babyupup/ ... -
2018020404积累
2018-04-06 12:06 01.https://www.cnblogs.com/wxgb ... -
2018020328积累
2018-04-06 11:52 3861.https://blog.csdn.net/quinc ... -
2018020322积累
2018-03-22 10:59 0http://mysql.taobao.org/month ... -
2018020315积累
2018-03-15 23:24 0js中 a=b||0; 在这里||代 ... -
2018020308积累
2018-03-08 15:55 01.http://blog.csdn.net/liu943 ... -
2018020304积累
2018-03-04 18:37 437http://blog.csdn.net/lengcong ... -
20180228积累
2018-03-03 21:28 486https://jackywu.github.io/art ... -
20180225积累
2018-02-25 20:42 412生存发展的法则哈,管理层不想被偏门技术人员挟持,可技术人员 ... -
20180223积累
2018-02-24 09:35 391google浏览器点击链接 ... -
20180222积累2
2018-02-22 22:48 447http://www.aboutyun.com/threa ... -
异构数据源海量数据交换工具-Taobao DataX 下载和使用
2018-02-22 09:36 638DataX介绍 DataX是一个在异构的数据库/文件系统之 ... -
积累20180203
2018-02-03 13:18 339TRUNCATE TABLE 在功能上与不带 WHERE ... -
工作的常识
2018-02-01 11:19 493SN码是Serial Number的缩写,有时也叫Serial ... -
软件开发工作总结
2018-01-31 18:59 3311、分享第一条经验: ... -
war包不自动解压
2018-03-22 10:41 861war包放到了tomcat7下的webapps中不解压 , ... -
maven项目的不同
2018-01-07 15:41 01.maven的web项目和Java项目的创建 2.ecl ... -
电脑休眠和睡眠的区别
2018-01-07 08:55 613电脑休眠和睡眠的情况是不分台式和笔记本的! 休眠;就是把应用环 ...
相关推荐
在IT行业中,Linux环境下的Nginx服务器因其高效、稳定和强大的反向代理及负载均衡功能而被广泛应用。本文将详细解析"Linux下Nginx负载均衡"这一主题,包括Nginx的基本概念、配置原理以及如何在Linux系统中设置负载...
【基于Linux的负载均衡技术】 负载均衡是一种网络技术,它旨在优化网络资源的分配,确保在高流量或复杂网络环境中,服务的响应时间和整体性能得以提高。Linux虚拟服务器(Linux Virtual Server, LVS)是实现这种...
在现代网络环境中,为了提高服务器的稳定性和网络带宽的利用率,负载均衡技术成为了一个重要的组成部分。本篇文章将详细介绍如何在Linux系统下通过双网卡绑定技术来实现负载均衡及失效保护,并提供具体的配置步骤。 ...
在本文中,我们首先介绍了Linux集群系统中的负载均衡技术,然后讨论了常用的负载均衡算法及其不足之处。接着,我们提出了改进的负载均衡算法,并对其进行了仿真测试。最后,我们对测试结果进行了分析,证明了改进...
在Linux环境下实现负载均衡,通常会使用到诸如LVS(Linux Virtual Server)这样的技术,它是一种高可用性集群解决方案,可以有效地将流量分发到多个服务器,提高系统的处理能力和响应速度,同时保证服务的连续性和...
在Linux操作系统中,多网卡绑定(Bonding)是一种网络冗余和负载均衡技术,它允许将多个物理网络接口(NICs)组合成一个逻辑接口,以提高网络连接的可靠性和带宽。本文将深入探讨如何在Linux下实现多网卡绑定,并...
【基于Linux的链路负载均衡技术研究与实现】 在当前的网络环境中,为了确保高校校园网的稳定性和可靠性,很多学校选择租用多条链路接入Internet,以提高网络连接的持续性和畅通性。然而,如何有效地管理和分配这些...
为了提高系统的稳定性和可用性,通过负载均衡技术将请求分散到多台服务器上进行处理变得尤为重要。 #### 二、负载均衡的目标 负载均衡技术的核心目标在于提升系统的高可用性和可扩展性: - **高可用性**:确保...
Linux负载均衡技术的实现方式主要有以下几种: 1. DNS轮询:通过DNS服务器对同一个域名返回多个不同的IP地址,从而使得不同的用户访问到不同的服务器,达到分散负载的效果。 2. 负载均衡器:通过硬件或软件的方式,...
Linux环境下负载均衡设置的知识点如下: Linux环境下负载均衡的基本概念: 负载均衡是一种计算机网络技术,用于在多个服务器之间分配网络或应用流量。通过将客户端请求分散到多个服务器上,负载均衡可以有效地防止...
负载均衡技术是现代网络环境中提高服务质量和可用性的重要手段,尤其对于依赖服务器的企业来说至关重要。在Linux操作系统中,一种实现负载均衡的技术是bonding,它允许多块网卡绑定成一个逻辑接口,共同分担网络流量...
Linux服务器集群与负载均衡技术是构建高可用性、高性能计算环境的关键技术,广泛应用于大型网站、企业级应用和云计算服务中。本节将深入探讨这一主题,解析其核心概念、架构设计以及实施策略。 首先,我们需要理解...
负载均衡技术可以应用于各种场景,如Web服务器、数据库服务器、邮件服务器等,并且可以与其他技术结合,例如缓存技术、内容分发网络技术等,以提供更好的服务体验。 在 Linux 平台上实现负载均衡系统需要考虑以下几...
【Linux负载均衡集群】是指通过特定的技术手段,将多台Linux服务器组成一个集群,使得客户端的请求能够均匀地分布到各个服务器上,从而提高服务的可用性和处理性能。在这个场景中,Apache作为Web服务器,被配置为...
负载均衡技术是一种用于优化网络性能、提高可用性和扩展性的关键技术。随着企业业务量的增加,IT系统处理的数据流量和请求量也会显著增长,单个服务器往往难以承担这种增长带来的高负荷。此时,负载均衡技术就显得尤...