什么是高并发:多个进程或者线程同时(或者在同一段时间内)访问统一资源会产生的并发问题

一.高并发初期解决方案:

1.0系统或服务器级别解决方案:

1.增大服务器的CPU  2.增加内存条  3.增加硬盘个数,对硬盘做Radis 4.换掉免费的tomcat,使用商用weblogic(美国Oracle公司出品的)

5.增加到二块网卡 6.聘请系统架构师优化Linux内核 7.甚至花高价直接购买高性能的服务器

 二.应用级别的解决方案

 1.网页HTML静态化(需要CMS项目支持) 2.图片服务器分离(常用解决方案)  3.缓存(常用解决方案)上上策为分布式缓存  4.镜像(下载较多)

三. 解决用户IP多了的办法是?

开始使用DNS:

缺点:虽然循环复用DNS是一个普遍使用的在Web服务器上负载平衡的解决方案,但是,该方式有它自身的缺陷。循环复用DNS将传入的IP请求映射到定义的一系列循环形式的服务器。一旦发生服务器故障,循环复用DNS继续把请求发送到这个故障服务器,一直到把该服务器从DNS中移走为止。这样许多用户必须等到DNS连接超时以后才能成功的访问目的网站。

终极解决方案:

采用负载均衡技术

 四.负载均衡

(1) 负载均衡服务器的三大功能:

1.转发:在用户请求,转发请求的功能 2.故障移除:如果这一台机器挂了,负载均衡服务器不会再把请求转发到这台服务器 3.恢复添加:如果这一台机器恢复正常了,负载均衡服务器会把它重新添加回来

(2)负载均衡服务器种类--通过软硬件角度:

1.通过硬件来解决:NetScaler、F5、Radware和Array等商用的负载均衡器,它们性能好,但是价格比较昂贵的 2.通过软件来解决(反向代理服务器 缓存服务器等),三大软件:

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) 高并发发生在两处

1. 负载均衡服务器 2.数据库

(7) 应用服务器会出现的问题和解决方案

1.多台服务器下用户登录了,session是如何共享的 2.用户请求一号机器时候产生了session,用户请求二号机时候就没有session了,后果就是程序把用户踢到登录页面

解决方案(三种):

1.可以把用户的session放在cookie中

优点:解决了session没有的问题

缺点:session放在了用户的浏览器中,是不安全的 2.可以把用户的session放在数据库中

优点:解决了session没有的问题

缺点:网站是一个成千上万用户的网站,如果把session放在数据库中,会造成数据库压力太大,从而使得网站不能正常运转

3.可以把用户的session放在缓存服务器中  最好的解决方案是放在缓存服务器中

要求:Memecache、Redis必须是集群