分布式,集群,云计算机、大数据、负载均衡、高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑心中会激动一番(或许这是判断是否是一个标准阿猿的标准吧)!
首先自己从宏观把控一下,通过上网科普自己遇到问题,然后再站在这些巨人的肩膀上解决问题。
问题:在大型WEB应用程系统中,由于请求的数量过大及并发的因素,导致Web系统会出现宕机的现象!
解决方案主要有以下几个方面:
- IIS负载均衡。
- 数据库负载均衡。
- 系统架构优化,比如:报表服务器和应用服务器的分离等。
接下来就是研究与解决,很简单首先捡个软柿子捏,根据常识以及方案排序,决定拿IIS来开刀。
两张图理解其中的业务流程
首先上网查资料nginx相关原理,文字性描述感觉很无聊,于是自己总结两张对比图,如下:
1、一般情况下(未使用nginx服务器流程):
2、使用nginx服务器后流程【注:本图以一级nginx服务器为例】:
根据这两张图对比,不难得出以下结论:
利用nginx管理起IIS服务器后:
- 可靠性大大增强:一台或多台IIS服务器宕机,服务不中断!细心的读者发现如果nginx服务器宕机那?当然可以通过配置多个及多级nginx服务器来解决。
- 处理大访问量时大大减小IIS服务器压力,提高访问速度。
- 消耗硬件资源多:多增加一台服务器(在数据量不大的时候nginx也可与IIS共用一台服务器)与N台IIS服务器!不过在硬件成本不断降低以及高可靠性的今天,对于大访问量网站,这个影响几乎可以忽略不计。要不然也不会有这么多的用户比如国内的用户:百度,新浪,网易,腾讯等。
理解了nginx的逻辑后我们着手部署一个环境实战一下。
实战部署集群实现赋值均衡
【准备工作】
- 安装一款文本编辑器(这里以Notepad++为例,使用记事本打开文件有时会是乱码)
- 下载Nginx(这里以Nginx-1.4.7为例,其他版本操作相同,下载地址:http://nginx.org/en/download.html)
- 建两个简单网页:使用vs建立四个简单的web项目)
- 将上面建两个网页分别发布在IIS上不同端口号,并测试发布成功(IISNgNix1项目端口为8001,IISNgNix2项目端口为8002,IISNgNix3项目端口为8003,IISNgNix4项目端口为8004)
【配置Nginx】
使用文本编辑器编辑Nginx配置文件(到你解压的相对路径下面的conf文件夹下面的nginx.conf文件编辑)
进入修改主要修改四个地方,如图一一标注出来了(温馨提示:不要用记事本打开修改否则可能会乱码)
使用Dos命令进入Nginx文件夹并启动Nginx(这里以将Nginx文件夹放在D盘根目录下为例)
- 进入D盘: d:
- 进入文件夹:cd D:\\nginx-1.4.7
- 开启nginx:start nginx
有个nginx的相关命令可到官网进行查看,或者百度也有很多。
【实现效果】
现在让我们一起见证奇迹吧!
打开浏览器,在地址栏中输入刚才在Nginx中设置的代理(这里是192.168.0.43:8888)
按F5刷新(大家如果有兴趣可以更改配置文件中Weight中的比例来看效果,我这里设置了2权重,也就是说第一个会分配的多一些):
【总结】
简单的部署一个服务器集群实现负载均衡是很容易的,但是运用到实战中就会有很多问题。
比如我们的session就是一个大问题,因为不同的iis之间session是不共享的,
导致我们项目的session会无效,这里小伙伴们有什么好的方法的。
小编想我们是不是可以做一个session服务器做共享,每个iis都经过session服务器,这样的话session就流通了。
具体效果如何我们等待分析。