原文转自:https://my.oschina.net/bigdataer/blog/486770
摘要: 【整个企业网站架构分析 】 1)在集群下,Session是如何共享的三种方案(优劣对比) 2)在集群下,N多台App服务器是如何被转发的(提出几种方案,优劣对比,采用最好的方案) 3)在集群下,N多台数据库是如何被连接的(提出二种方案,优劣对比,采用最好的方案) 4)在集群下,整个网站的瓶颈在哪里? 5)大数据(hadoop)在企业的整个架构中,处在什么地位,有什么作用? 【访问人数过多时,而引起的高并发解决方案(原理,搭建,演示) 】 1)支持App服务器出现故障时,主服务器能自动将其移除任务列表 2)支持App服务器恢复正常时,主服务器能自动将其添加回任务列表 3...
负载均衡服务器高并发
企业高并发概念出自阿里巴巴研究院
什么是高并发:多个进程或者线程同时(或者在同一段时间内)访问统一资源会产生的并发问题
企业级应用常见的架构图:
2. 高并发原理图:
3.高并发初期解决方案:
3.1系统或服务器级别解决方案:
①增大服务器的CPU
②增加内存条
③增加硬盘个数,对硬盘做Radis
④换掉免费的tomcat,使用商用weblogic(美国Oracle公司出品的)
⑤增加到二块网卡
⑥聘请系统架构师优化Linux内核
⑦甚至花高价直接购买高性能的服务器
随着业务的不断增加,服务器性能很快又达到瓶颈
3.2 应用级别的解决方案
① 网页HTML静态化(需要CMS项目支持)
②图片服务器分离(常用解决方案)
③缓存(常用解决方案)上上策为分布式缓存
④ 镜像(下载较多)
3.3 解决用户IP多了的办法是?
开始使用DNS:
缺点:虽然循环复用DNS是一个普遍使用的在Web服务器上负载平衡的解决方案,但是,该方式有它自身的缺陷。循环复用DNS将传入的IP请求映射到定义的一系列循环形式的服务器。一旦发生服务器故障,循环复用DNS继续把请求发送到这个故障服务器,一直到把该服务器从DNS中移走为止。这样许多用户必须等到DNS连接超时以后才能成功的访问目的网站。
终极解决方案:
采用负载均衡技术
3.4 负载均衡
(1) 负载均衡服务器的三大功能:
①转发:在用户请求,转发请求的功能
②故障移除:如果这一台机器挂了,负载均衡服务器不会再把请求转发到这台服务器
③恢复添加:如果这一台机器恢复正常了,负载均衡服务器会把它重新添加回来
(2)负载均衡服务器种类--通过软硬件角度:
①通过硬件来解决:NetScaler、F5、Radware和Array等商用的负载均衡器,它们性能好,但是价格比较昂贵的
②通过软件来解决(反向代理服务器 缓存服务器等),三大软件:
LVS(Linux Virtual Server):最好的软件策略,有备机有主机,无单点问题,国产(阿里章文嵩博士)开源项目,工作在网络四层上
Nginx:Ngnix有”单点故障“的问题,如果挂了,会带来很多的麻烦。到了后期Web服务器继续增加,它本身可能会成为系统的瓶颈
nginx最高支持50000个并发连接数,工作在网路七层上
Apache:web服务器第一,但不是最好的负载均衡服务器,工作在网路七层上
LVS对比NGinx
负载度: LVS KO Ngnix
功能多少:Nginx KO LVS
稳定度:LVS KO Nginx
服务器性能要求:LVS KO Nginx
效率最高的负载均衡技术中,最高的就是IP负载均衡技术。IP虚拟服务器软件(IPVS)是在Linux内核中实现的,LVS就是使用的IP负载均衡技术
(3) 常用的高可用方案(HA)都包括两种机器,LVS:
主机 备机
(4) 常用的服务器
tomcat
weblogic(大公司,追求稳定)
(5) 常用数据库
mysql 、oracle 、mssql
称为高可用(HA)
(6) 高并发发生在两处
① 负载均衡服务器
②数据库
(7) 应用服务器会出现的问题和解决方案
①多台服务器下用户登录了,session是如何共享的
②用户请求一号机器时候产生了session,用户请求二号机时候就没有session了,后果就是程序把用户踢到登录页面
解决方案(三种):
①可以把用户的session放在cookie中
优点:解决了session没有的问题
缺点:session放在了用户的浏览器中,是不安全的
②可以把用户的session放在数据库中
优点:解决了session没有的问题
缺点:网站是一个成千上万用户的网站,如果把session放在数据库中,会造成数据库压力太大,从而使得网站不能正常运转
③可以把用户的session放在缓存服务器中
最好的解决方案是放在缓存服务器中
推荐两种缓存服务器:Memcache、Redis
要求:Memecache、Redis必须是集群
(8) 数据库并发
①要求:随着业务量的不断增大,数据库承载能力也要增大
②要求:数据安全,不能丢失
③要求:支持备份+容灾
(9)Hadoop集群和RDMS之间数据处理流程:
①通过sqoop把关系型数据库的数据导入到HDFS中
②把HDFS中的数据经过MapReduce进行计算及处理
③将处理后的解决数据写回到HDFS文件系统
④把结果数据倒回关系型数据库
⑤将关系型数据库的数据形成报表展示
4.分析完企业整体架构后,开始搭建负载均衡服务器,并演示效果
4.1搭建LVS负载均衡,场景描述:
开启四台Linux系统(Centos6.4)
第一台:负载均衡主机
第二台:负载均衡备机
第三台:真实服务器(http服务器)
第四台:真实服务器(http服务器)
http服务器是Apache公司的服务器,在linux系统上自带的,可以直接使用,方便快捷
4.2 准备开始搭建,搭建成功后,演示刚才说的那三个功能
4.2.1验证功能:
①转发功能
②故障移除的功能
③恢复添加的功能
④主机关了,备机是否接管它的工作
环境:window7 系统
VMware虚拟机,在虚拟机上启动四台Centos6.4服务器
i5cpu 500G磁盘 内存:8G
心跳检测机制
4.2.2 三种IP:
负载均衡IP:所在服务器IP
VIP:LVS这个软件的IP,正是我们要访问的IP
192.168.200.201 访问IP
真实服务器RIP(realIP)
4.2.3 IP分配
149: 负载均衡服务器
150: 负载均衡服务器
151: Http服务器
152: Http服务器
4.2.4 启动Http服务器
启动Http服务器命令:
service httpd start
查看防火墙的状态:
service iptable status
关闭防火墙:
service iptables stop
彻底关闭防火墙:
chkconfig iptables off
Http服务器应该不一样,转发的时候才能知道转发到哪里了
cd /var/www/html/
vim index.html
输入内容: I am http 151,保存退出
然后再两台服务器上添加端口
cd /etc/init.d/
vim realserver
粘贴内容,保存退出
chmod 755 realserver
service realserver start
ifconfig查看,如果出现一个虚拟ip(lo:0 192.168.200.201),则说明启动成功
4.2.5 搭建负载均衡主机
安装keepalived软件
uname -a 查看当前机器系统内核
上传keepalived软件到服务器目录下:
安装keepalived软件命令:
rpm -ivh keepalived-版本号
查看软件安装在哪里:
rpm -ql keepalived-版本号
查找配置文件的位置,然后编辑配置文件:
vim /etc/keepalived/keepalived.conf
> /etc/keepalived/keepalived.conf (>可以用于清除内容)
vim /etc/keepalived/keepalived.conf,复制配置到配置文件里面,wq保存
149防火墙也要记得关闭
启动服务:
service keepalived start
tail -f /var/message,查看日志信息
4.2.6 验证三大功能
搭建完成,在浏览器输入访问IP(VIP)查看
VIP(访问IP)http://192.168.200.201 访问IP
1)转发功能:151 152,发现可以在两台HTTP服务器之间切换
2)故障移除: 把152机器手动关掉,再查看效果
service httpd stop,访问152出现没法连接的效果
在访问VIP发现始终是访问的151机器,证明负载均衡有故障移除的功能
3) 恢复添加
把152机器再手动启动,再查看效果
service httpd start,发现152重新启动了,再 访问VIP发现可以重新再两台ftp服务器之间切换了
证明:负载均衡有恢复添加的功能
4)负载均衡主机关了,备机是否接管它的工作
搭建备机,150机器上搭建,和上面的步骤一样
配置文件中将state Master修改成state BACKUP
搭建备机成功
关闭负载均衡主机149机器,查看150机器是否接管它的工作
service keepalived stop
证明负载均衡主机关闭了,备用机确实接管了他的工作
负载均衡主机备机搭建成功,负载均衡的功能验证通过!
备注:
1.201IP是LVS的IP,访问IP(VIP)
2.LVS比例:权重是可以分配的,上面的演示是1:1
3.http是Centos自带的,用tomcat也是可以的,但是用tomcat,要安装JDK,为了节约时间才选用http服务器的
4.两台tomcat服务器和两台Http服务器使用方法是一样的,就是给Tomcat的默认8080端口改成80端口
5.LVS要安装吗?
不需要安装,LVS linux虚拟机,是linux自带的,要求内核是2.6版本以后就支持了,不需要安装
6.windows下安装是非常不专业的,企业级服务器都是用linux服务器(redHat、centos)
7.LVS主机配置的Master,备机配置的BACKUP
8.通过心跳检查机制检查主机宕机了,然后切换到备机(RPC)
9.主机和备机 属性Master和Backup 优先级
- 大小: 142.4 KB
- 大小: 39.9 KB
分享到:
相关推荐
总结来说,面对企业高并发的挑战,需要从数据库设计、索引优化、分区分片、事务管理、架构设计以及负载均衡等多个角度出发,结合实际业务需求,制定出成熟的解决方案,确保系统在高并发环境下仍能保持高效稳定运行。...
视频《企业高并发的成熟解决方案(一)》将详细讲解以上概念,并通过实际案例展示如何在企业环境中实施这些策略,帮助开发者和运维人员更好地应对高并发挑战。通过学习这套解决方案,你可以掌握构建可扩展、高可用的...
企业高并发的成熟解决方案 1 1 整体网站架构分析 1 2 高并发 1 2.1 什么是高并发呢? 1 2.2 高并发原理图 1 2.3 初期解决方案 2 2.3.1 系统或服务器级别的解决方案 2 2.3.2 应用级别的解决方案 2 2.4 能否增加服务器...
3. 软件实现负载均衡的方法有LVS,它是一种在Linux内核中进行四层交换的软件,能够支持高并发连接,且没有文件句柄数的限制。HAProxy是一种免费的开源软件,它提供七层交换和健康检查功能,可应用于小并发负载均衡。...
针对这些问题,【标题】提出的“中小企业Web服务器软负载均衡设计方案”旨在通过软负载均衡技术提高服务器的稳定性和并发访问能力。软负载均衡是将工作负载分散到多个服务器上,以优化资源利用率和系统性能。 ...
Tomcat虽然是一款优秀的Java Web容器,但由于其设计上的限制,在高并发场景下容易出现性能瓶颈。另一方面,Apache作为一款成熟的Web服务器,具有良好的稳定性,尤其是在处理静态资源方面表现出色。结合这两款软件的...
### 高并发网站系统架构解决方案 #### 一、引言 随着互联网的快速发展和技术的不断进步,现代网站尤其是大型网站面临着前所未有的挑战。这些挑战主要体现在处理大量的用户访问请求、高并发请求等方面。为了应对...
### 高并发网站系统架构的解决方案 随着互联网技术的飞速发展及用户需求的多样化,高并发场景下的网站系统架构面临着前所未前的挑战。本文旨在深入探讨如何构建能够应对大规模并发请求的网站系统架构,从多个维度...
Apache ActiveMQ作为一款成熟且功能强大的开源消息中间件,被广泛应用于各种高并发场景下。然而,在处理大量并发连接和消息时,ActiveMQ可能会遇到性能瓶颈,例如连接资源耗尽、消息处理不均等问题。本文将详细介绍...
例如,Oracle、Sybase等数据库提供了成熟的集群解决方案,MySQL的Master/Slave架构也能实现读写分离,缓解单一数据库的访问压力。 然而,数据库集群的扩展性和成本往往受限于特定的数据库类型,库表散列则从应用...
在IT行业中,RPC(Remote Procedure Call)框架是分布式系统中常用的一种通信机制,它使得一个程序可以在不关心远程调用...在实际项目中,开发者需要根据业务需求和系统规模灵活运用这些技术,以实现最优的解决方案。
- **LVS**:Linux Virtual Server,是一种开源的负载均衡解决方案,支持多种负载均衡算法,如轮询、最少连接等。 - **Apache**:虽然主要作为Web服务器,但也可以配置为负载均衡器,支持基于内容的路由等功能。 - **...
LVS作为一种成熟的负载均衡解决方案,在实际部署中能够显著提升服务器集群的整体性能和服务质量。通过对LVS架构的理解及其不同组件的深入了解,可以更好地利用这一技术解决实际问题,提高网络服务的可靠性和用户体验...
### 企业电商综合服务平台技术解决方案知识点 #### 一、系统总体架构设计 ##### 1.1.1 总体设计思路 - **目标定位**:该平台旨在促进纺织服装产业的转型升级,通过“互联网+服装时尚产业”的公共服务升级,推动...
缓存管理算法包括FIFO(先进先出)、LRU(最近最少使用)和LFU(最不经常使用)等,开源的NoSQL数据库如Redis和Memcached提供了成熟的缓存解决方案。 缓存服务器部署是另一个要考虑的因素。推荐将缓存服务器独立...
而Java作为目前最主流的企业级开发语言之一,在构建高并发架构方面具有得天独厚的优势。 #### 高并发系统的定义 高并发系统通常指的是能够同时处理大量并发请求的系统。这些系统具备以下特点: - **高可用性**:...