设为首页 收藏本站
查看: 866|回复: 0

[经验分享] Tomcat8+Redis+Nginx实现集群

[复制链接]

尚未签到

发表于 2018-11-2 10:20:24 | 显示全部楼层 |阅读模式
Tomcat8.5.14+Redis+Nginx实现集群
知识点
  1)什么是集群
  集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。
  说白了就是同一个业务,部署在多个服务器上。
  2)集群所遇到的问题
  session共享

  •   基于NFS的Session共享
  •   基于数据库的Session共享
  •   基于Cookie的Session共享
  •   基于缓存的Session共享(本次选用这种方式)
  3)集群优点

  •   提高性能
  •   降低成本
  •   提高可扩展性
  •   增强可靠性
测试环境
  JDK版本:JDK8
  Tomcat版本:apache-tomcat-8.5.14
  Redis版本:redis-2.4.5
  Nginx版本:nginx-1.11.6
需要的jar包
  放入Tomcat下的lib文件夹下:
  commons-pool2-2.4.2.jar
  jedis-2.9.0.jar
  javazhan-tomcat-redis-session.jar
  下载地址:Tomcat8+Redis实现集群所需Jar架包  http://down.51cto.com/data/2449143
修改配置文件
  1)Tomcat
  复制apache-tomcat-8.5.14两份,分别命名apache-tomcat-81与apache-tomcat-82。为了能启动两个tomcat需要修改server.xml的端口。

  •   服务端口
  

    2.访问连接端口
  第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。
  
  3.与HTTP服务器连接端口
  第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。
  
  
  配置 context.xml 文件:session共享
  
  WEB-INF/web.xml
  ${catalina.base}/conf/web.xml

  
    host="127.0.0.1"
  port="6379"
  database="0"
  maxInactiveInterval="60" />
  
  说明:
  如果tomcat配置中,将manager放在server.xml中,那么使用maven做热部署时,会发生失败。所以,推荐放在context.xml中。
  2)Nginx
  修改conf目录下的nginx.conf文件
  upstream javazhan.com {
  server  yan.10010.com:8881 weight=5;
  server  yan.10010.com:8882 weight=5 ;
  }
  server {
  listen       80;
  server_name api.xxx.com;
  location /
  {
  proxy_set_header Host $host;
  proxy_set_header X-Real-Ip $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_pass http://javazhan.com;
  }
  }
  新建web项目
  新建文件夹ClusterTest ,新建sessiontest.jsp,放到tomcat文件夹下webapps下。
  
  
  
  
  
  
  ClusterApp Test
  
  
  访问的Nginx IP:
  
  Tomcat SessionPort:
    %>
   0) {
  String dataValue = request.getParameter("dataValue");
  session.setAttribute(dataName, dataValue);
  }
  out.println("Session列表");
  System.out.println("Session列表");
  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
  String name = (String) e.nextElement();
  String value = session.getAttribute(name).toString();
  out.println(name + " = " + value + "");
  System.out.println(name + " = " + value);
  }
  %>
  

  名称:
  值:  
  
  
  
测试
  1)启动nginx
  2)启动redis
  3)启动tomcat(两个)
  4)启动浏览器
  5)输入地址 http://yan.10010.com/ClusterTest/sessiontest.jsp
DSC0000.jpg

DSC0001.jpg

  可以看出同一地址,分别访问两个tomcat服务器,并且session值不变,实现了session共享。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-629709-1-1.html 上篇帖子: 21.13-21.17 redis常用操作,数据类型,操作键值,安全设置 下篇帖子: 如何实现systemd监管 Redis?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表