外贸网站建设解决方案,太原网站建设方案推广,怎样创建网站快捷方式到桌面,中小企业平台集群简介 试想有一家餐厅#xff0c;如果顾客人数较少#xff0c;那么餐厅只需要一个服务员即可#xff0c;如图1。但是#xff0c;当顾客人数非常多时#xff0c;一个服务员是绝对不够的#xff0c;如图2。此时#xff0c;餐厅需要雇用更多的服务员来解决大量访问…集群简介 试想有一家餐厅如果顾客人数较少那么餐厅只需要一个服务员即可如图1。但是当顾客人数非常多时一个服务员是绝对不够的如图2。此时餐厅需要雇用更多的服务员来解决大量访问顾客就餐的问题。如图3。 以上的情景就是“集群”的产生原因及解决方案。将顾客比作客户端服务员比作服务器端当少量客户端访问服务器端时一台服务器完全足够但如果有大量的客户端来访问服务器端就需要在服务器端搭建多台服务器以缓解大量访问带来的压力。服务器端搭建的多台服务器就称为“集群服务器”。 集群特点 失败迁移
餐厅里如果只有一个服务员那么一旦服务员出现异常情况如生病、事假等顾客的所有就餐请求都将无法满足。同样地如果只有一台服务器那么一旦服务器出现异常如宕机、物理损坏等所有的客户端请求也将无法得到响应。为了避免上述风险就可以使用多台服务器组成“集群服务器”即使某一台服务器发生了异常集群服务器也依然能够正常地处理客户端请求。例如当客户端访问服务器C时即使服务器C发生了异常集群服务器也可以通过服务器A或服务器B对客户端做出响应。这种容错机制就是集群服务器的第一个特点——失败迁移。
负载均衡
如果在一台服务器中部署了4个功能那么无论客户端请求哪一个功能都需要这台服务器来处理如图4。而如果采用的是集群服务器就可以只在某一台服务器上部署部分功能例如只部署3个功能多台服务器共同处理客户端请求。如图5。此集群服务器中4个功能均被部署了三次因此能够处理的请求次数也将提高三倍。换句话说此集群服务器可以将一台服务器的负载量分配到四台服务器上处理即负载均衡。此外集群服务器可以分为“水平集群”和“垂直集群”。水平集群是指在不同的计算机上各自安装一台服务器垂直集群是指在同一台计算机上安装多个服务器。 使用Apache Tomcat搭建集群服务器 Apache是web服务器解析速度非常快并且稳定性强但只能解析静态网页无法处理JSP等动态网页。而Tomcat是运行在Apache之上的应用服务器可以解析静态网页及动态网页但解析速度比Apache稍慢。因此可以采用Apache Tomcat 搭建服务器实现“动静分离”即用Apache处理静态网页用Tomcat处理动态网页。此外Apache可以对多个Tomcat服务器进行调度因此可以在Apache上搭建多个Tomcat服务器从而实现Tomcat集群。具体步骤请参阅相关资料 使用Nginx Tomcat搭建集群服务器 Nginx 是一款轻量级的反向代理服务器可以方便地存储服务端的静态资源实现服务端资源的动静分离以及快速搭建集群服务器。Nginx 支持“万”级别的高并发连接用于反向代理时非常稳定并且能够在不间断服务的情况下进行维护即热部署。此外Nginx是一款开源软件使用成本低廉。 a在服务器中HTML、CSS、JS、图片、音频、视频等资源属于静态资源由java编写的后台代码servlet等属于动态资源。通常Tomcat 等服务器擅长处理动态资源而对静态资源的处理效率较差。因此如果能将服务器中的静态资源和动态资源相分离只把动态请求交给Tomcat等服务器处理而把静态资源交给Nginx处理就能大幅提高服务端的整体性能。Nginx可以根据客户端请求的URL后缀判断请求的是静态资源还是动态资源。NginxTomcat实现动静分离具体步骤请参阅相关资料 b垂直集群案例在IP为192.168.43.169的电脑上安装两个Tomcat服务器 第一步配置Tomcat
官网下载Tomcat后解压重命名如C:\Users\johny\Desktop\apache-tomcat-9.1080
再复制一份重命名C:\Users\johny\Desktop\apache-tomcat-9.2080 修改两个Tomcat的配置文件 把项目ssm.war分别部署到两个Tomcat服务器直接复制粘贴到webapps下即可。 启动两个Tomcat服务器双击startup.bat文件即可。 注由于Tomcat依托于jdk想通过双击Tomcat服务器下\bin\startup.bat启动Tomcat服务器前须先配置环境变量JAVA_HOME 第二步配置数据库
由于ssm项目中是通过远程连接访问数据库所以需要在mysql8.x中创建新用户。 第三步配置Nginx
官网下载Nginx后解压如 C:\Users\johny\Desktop\nginx-1.16.1\
修改Nginx的配置文件 把前端项目文件夹dist复制粘贴到d盘根目录下即 d:/dist
启动Nginx服务器双击nginx.exe文件即可。 第四步测试
在浏览器请求 http://192.168.43.169:8081/并不断进行操作,Nginx服务器默认会在两台Tomcat之间轮询访问 第五步配置“IP_Hash”策略避免Session混乱
IP_Hash策略的原理是Nginx会计算每个用户请求时所在IP地址的Hash值因为同一个用户的IP值相同因此对同一个用户计算的Hash值也必然相同。之后Nginx再建立Hash值和Tomcat节点的一一对应关系这样就保证每个用户只会访问集群中的同一个服务器节点就不会造成Session混乱的情况。
修改Nginx配置ip_hash 这样同一用户始终访问的就是集群中的同一个Tomcat节点因此每次访问时获取的Session对象就是相同的了。
问题
Nginx同网段ip_hash负载均衡无效果
Nginx ip_hash在局域网中所有机器访问的都是同一台机器没有Hash。造成原因如被Hash的ip为192.168.43.169实则上Nginx进行Hash算法时取的是192.168.43。所以在局域网同网段所有机器得到的结果服务器都是同一台。
解决
修改Nginx目录源码nginx-1.16.1\src\http\modules\ngx_http_upstream_ip_hash_module.c
将源码修改为通过全IP进行hash可参阅相关资料。
还可以开发独立的Session服务器或者使用Session广播等方式让多个Tomcat共享同一份Session对象有兴趣可自行研究。 c水平集群案例在IP为192.168.43.169和IP为192.168.43.166的两台电脑上分别安装一个Tomcat服务器 【IP为192.168.43.169的电脑】
第一步配置Tomcat
官网下载Tomcat后解压重命名如C:\Users\johny\Desktop\apache-tomcat-9.1080 修改Tomcat的配置文件 把项目ssm.war分别部署到Tomcat服务器直接复制粘贴到webapps下即可。 启动Tomcat服务器双击startup.bat文件即可。 第二步配置数据库
由于ssm项目中是通过远程连接访问数据库所以需要在mysql8.x中创建新用户。 第三步配置Nginx
官网下载Nginx后解压如 C:\Users\johny\Desktop\nginx-1.16.1\
修改Nginx的配置文件 把前端项目文件夹dist复制粘贴到d盘根目录下即 d:/dist
启动Nginx服务器双击nginx.exe文件即可。 【IP为192.168.43.166的电脑】 把192.168.43.169电脑上已配置并部署项目的C:\Users\johny\Desktop\apache-tomcat-9.1080
复制一份双击startup.bat文件启动Tomcat服务器即可。 【测试】
浏览器请求 http://192.168.43.169:8081/并不断进行操作,Nginx服务器会对两台电脑上的Tomcat进行轮询访问