您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
集群服务器(集群服务器搭建)
集群,服务器,负载均衡集群服务器(集群服务器搭建)
发布时间:2019-02-08加入收藏来源:互联网点击:
Apache 和 Nginx 本身不支持生成动态页面,但它们可以通过其他模块来支持(如shell、Python、PHP程序来生成动态内容)。
虽然Tomcat也可以认为是HTTP服务器,但通常它仍然会和Nginx配合在一起使用:
动静态资源分离,运用Nginx的反向代理功能分发请求,所有动态资源的请求交个Tomcat,而静态资源的请求则直接由Nginx返回到浏览器,这样能大大减轻Tomcat的压力;
负载均衡,当也无压力增大时,可能一个Tomcat的实例不足以处理,那么这时可以启动多个Tomcat实例进行水平扩展,而Nginx的负载均衡功能可以把请求通过算法分发到各个不同的实例进行处理;
Tomcat集群方案
Apache + Tomcat;
Nginx + Tomcat;
Lvs + Nginx + Tomcat;
# lvs负责集群调度,Nginx负责静态文件处理,Tomcat负责动态文件处理;
Session复制在访问系统会话的过程中,用户登录系统后,不管访问系统的任何资源地址都不需要重复登录,这里面的 Servlet容易保存了该用户的会话(session)。如果两个Tomcat(A、B)提供集群服务时,用户在 A上登录,接下来的请求Web服务器根据策略分发到 B,因为B没有保存用户的会话(session)信息,不知道其登录,会跳转到登录界面。这时候我们需要让 B也保存有 A的会话,我们使用Tomcat的session复制实现或者通过其他手段让session共享。
如果不采用 粘session,那么我们可以采用Tomcat的session复制使所有节点Tomcat的会话相同,Tomcat使用组播技术,只要集群中一个Tomcat节点的session发生改变,会广播通知所有的Tomcat节点发生改变。
高可用(HA)和session共享使用 Lvs + Keepalived 实现集群高可用,达到更健壮的LB我们可以做前端使用 Lvs 来做负载均衡,根据Lvs的8种调度算法,分发请求到对应的Web服务器集群上。Lvs做双机热备,通过Keepalived模块能够达到故障自动转移到备份服务器,不间断提供服务。
Web端使用的负载均衡:
HAProxy + Keepalived + Nginx;
数据库集群(如MySQL):
Lvs + Keepalived + MySQL;
因为HAProxy和Nginx一样是工作在网络7层之上,并且HAProxy弥补了Nginx的一些缺点(如session的保持,cookie的引导),且它本身是个负责均衡软件,处理负载均衡上面必然优于Nginx。
Lvs比较笨重,对于比较庞大的网络应用,实施比较复杂,虽然它运行在网络4层之上,仅做分发没有流量产生,但是它不能做正则处理也不能做动静分离,所以一般用 Lvs + Keepalived或heatbeat做数据库层的负载均衡。
使用 terracotta 或 memcached 使session共享terracotta 是 jvm 级别的 session共享
它基本原理是对于集群间共享的数据,当在一个节点发生变化的时候,Terracotta只把变化的部分发送给Terracotta服务器,然后服务器把它转发给真正需要这个数据的节点,并且共享的数据对象不需要序列化。
通过 memcached 实现内存级 session共享
通过 memcached-session-manager(msm)插件,通过Tomcat上一定的配置,即可实现把session储存到memcached服务器上。在memcached内存中共享的对象需要序列化。
其他方案
通过cookie保存用户信息(一般是登录信息),每一个请求到达Web应用的时候,Web应用从cookie中取出数据进行处理(这里cookie肯定要加密);
另一种是把用户信息的关键属保存到数据库,这样就不需要session了。请求过来从数据库查询关键属数据,做相应处理。缺点是加大了数据库的负载,是数据库成为集群的瓶颈。
需要更多c/c++Linux后台服务器开发学习视频资料的可以后台私信【架构】免费获取
本文到此结束,希望对大家有所帮助呢。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |