高并发集群技术讲解

假如一个WEB服务器(装有Nginx和PHP的服务器)能支撑100个并发量,此时网站的请求有200个并发量,这时候就需要有两个支撑100个并发量的WEB服务器共同承担,怎么做到呢?我们还需要一个负载均衡服务器(这个负载均衡服务器的配置要求很低,因为负载均衡只需要转发用户的请求给WEB服务器就可以了,只要有好的网卡就行,他属于网卡消耗型,可以看做是一个入口服务器,负载均衡是通过轮询的方式发送请求给多个WEB服务器,我们这里假设有两个web服务器,就是刷新一次请求一个,再刷新一次请求另一个),用Nginx就可以当做负载均衡服务器,这样就实现了web服务器平均分担并发量。
但是光有多个web服务器还不够,还需要有多个数据库服务器(这时候的mysql就不需要安装在web服务器中了,需要单独装在这个数据库服务器上),这就叫做主从复制(就是有个主数据库服务器,多个从数据库服务器,主服务器用来写操作,从服务器用来读操作,从服务器相当于主服务器的一个镜像,两个服务器需要保持一致,从服务器会自动跟主服务器保持一致,只需要做一些配置就行,这个后面会介绍到),主从复制就涉及到了读写分离技术,需要通过php程序实现(就是从web服务器上发送请求给数据库服务器时实现,后面会介绍到)。
这个时候我们需要考虑到一个问题,大家都知道session是存放到服务器上的,这时候有两个web服务器,假设请求第一个服务器的时候我们是登录状态,这个时候再刷新一次就会请求第二个服务器,但是第二个服务器上没有你登录时存放的session,没有session就处于未登录状态,再刷新又变成了登录状态,这是为什么呢?这就是SESSION丢失的情况,想要解决很简单,只要把session存放到主服务器上就行了(就是存到数据库里),这就叫SESSION共享。
一般情况下还要有个图片服务器,用来存放图片的(把通过php上传的图片写到这个服务器上,图片服务器也有可能是个集群)。
如果是以静态页面为主的网站还可以web服务器和负载均衡服务器之间搭建一个反向代理服务器(其实就是将页面生成缓存存放到这个服务器上),发送的请求会先经过这个缓存代理服务器,如果有缓存直接返回给客户端就行了,后面的一系列操作都不需要了,如果没有则再将请求发送给web服务器,如果说某个页面不想做缓存可以配置成穿透的行为直接访问后端。
反向代理有两个比较常用的软件:
squid:将数据缓存到硬盘中
varnish:将数据缓存到内存中(这个比较流行)
高可用:没有单点故障。就是某个服务器出现了故障,网站还可以正常的运行,比如web服务器有多个,坏了一个还可以正常的运行,但是入口服务器(即负载均衡服务器)只有一个,坏了一个就不能正常运行了,所以还得需要备份一个服务器才行。但是主数据库服务器也只有一个,没有关系,我们可以把一个从服务器切换成主服务器。
CDN:内容分发网络,假如世界不同的地方用户访问你的网站,他会从他最近的节点获取数据,这个需要在世界各地搭建节点,维护成本比较高(这个环境就不要自己搭建了,建议使用第三方的)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值