1、tomcat集群能带来什么
(1-1)提高服务的性能,增大并发的能力以及高可用性
(1-2)提供架构的横向扩展能力
2、tomcat集群实现原理
通过nginx负载均衡进行请求的转发
3、tomcat集群带来什么新问题
(3-1) session登陆信息的存储和读取问题?
这个解决方案有以下几种:
(3-1-1)采用nginx ip hash policy 根据用户的请求ip地址进行nginx的hash取值来达到请求到制定的服务器上面,这种方案不需要改变现在的已有的架构实现横向扩展 省事,但是这种方案也有缺点,缺点是导致一部分服务器很忙而另一部分服务器很空闲导致服务器浮在不均衡,还有就是在网络环境复杂的情况下无法实现服务因为ip总变。
(3-2)服务器定时任务并发问题(多台机器的定时任务同时执行,会同时访问同一资源比如数据库这时候会产生大量的竞争有可能产生数据的错乱)
(3-2-1)redis 分布式 session server来解决服务器定时任务并发问题
4、nginx负载均衡配置、常用策略、场景和特点
轮训、权重、ip hash、url hash(需要安装nginx插件也就是第三方)、fair(第三方,按照服务器的响应时间来进行分配,响应时间短的优先分配)
5、tomcat集群之单机部署多应用
(5-1)解压两个tomcat 分别命名为tomcat1和tomcat2。
(5-2)分别修改tomcat的字符集为utf-8。
(5-3)修改/etc/profile添加内容:
export CATALINA_BASE=/Users/hanyh/tomcatDistribute/tomcat1
export CATALINA_HOME=/Users/hanyh/tomcatDistribute/tomcat1
export TOMCAT_HOME=/Users/hanyh/tomcatDistribute/tomcat1
export CATALINA_2_BASE=/Users/hanyh/tomcatDistribute/tomcat2
export CATALINA_2_HOME=/Users/hanyh/tomcatDistribute/tomcat2
export TOMCAT_2_HOME=/Users/hanyh/tomcatDistribute/tomcat2
(5-4) 修改tomcat2的catalina.sh
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
(5-5)修改tomcat2中的server.xml把端口加1000
(5-6)在一台机器上分别启动两台tomcat。
(5-7)安装nginx。
(5-8)然后在nginx的conf文件夹下面新建一个vhost文件夹来保存nginx的负载均衡策略,然后编辑nginx.conf文件在里面 include vhost/*.conf文件
(5-9)在vhost文件夹下面新建一个www.test.com.conf文件 里面编辑的内容为:
upstream www.test.com{
server www.test.com:8080 weight=1;
server www.test.com:9080 weight=3;
}
server {
listen 80;
autoindex on;
server_name www.test.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
location / {
proxy_pass http://www.test.com;
}
}
然后nginx -s reload 访问www.test.com 即可。