博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx+memcached+tomcat配置集群session共享负载均衡
阅读量:5068 次
发布时间:2019-06-12

本文共 2806 字,大约阅读时间需要 9 分钟。

配置环境:

windows xp下

jdk1.7.0_10       (附下载)     (附下载)    tomcat7.0.12

*(注意:nginx负载均衡不会有太大问题,但是,在用memcached配置session共享的时候,tomcat的版本可能成为关系到成败的关键,

一开始用的tomcat7.0.34,总是抛出异常,原因应该是没有匹配最新tomcat的memcached 的jar包)

 

1、首先用nginx来搭建三台tomcat服务器的负载均衡环境,如何在一台机器启动三个tomcat请参照《》

  我的tomcat的端口分别是8081,8082,8083

  解压下载的nginx压缩包,我的路径是D:\MyServer;

  在D:\MyServer\nginx-1.2.6\conf 下找到 nginx.conf,该文件为nginx的请求分发配置文件,打开nginx.conf做如下修改:

    (1)在http {…} - server{…} - location / {…}中加入一行:“proxy_pass  http://127.0.0.1;”

    修改后如下:   

         location / {                root   html;                index  index.html index.htm;                proxy_pass    http://127.0.0.1;            }

  

   (2)在http {…}中加入以下代码:

       #设定负载均衡的服务器列表       upstream 127.0.0.1 {                 #weigth参数表示权值,权值越高被分配到的几率越大                 server 127.0.0.1:8081 weight=1;                 server 127.0.0.1:8082 weight=2;          server 127.0.0.1:8082 weight=3;             }

  

  可以进行请求分发的简单测试,

  启动nginx,打开cmd,进入到 D:\MyServer\nginx-1.2.6\ 路径下 输入nginx 敲回车,调度处任务管理器看到进程里面有nginx则表示启动成功

  启动三台tomcat

  用eclipse新建一个web项目cluster,该项目下新建一个clustertest.jsp文件,编辑该文件内容如下:

<%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.*" %> Cluster Test  <%   //HttpSession session = request.getSession(true);   System.out.println(session.getId());   out.println("
SESSION ID:" + session.getId()+"
"); // 如果有新的请求,则添加session属性 String name = request.getParameter("name"); if (name != null && name.length() > 0) { String value = request.getParameter("value"); session.setAttribute(name, value); } out.print("Session List:"); Enumeration
names = session.getAttributeNames(); while (names.hasMoreElements()) { String sname = names.nextElement(); String value = session.getAttribute(sname).toString(); out.println( sname + " = " + value+"
"); System.out.println( sname + " = " + value); } %>

  修改tomcat\conf\server.xml 

    对应的另外两台tomcat分别是

    tomcat7-2
    tomcat7-3

  将cluster项目打包成war包分别放到每个tomcat的webapps下

  在浏览器中输入 重复刷新可以看到输出的session值在变化说明分发处理成功

2、使用memcached来实现三个tomcat共享session

    解压一开始下载好的memcached压缩包到指定路径,我的是D:\MyServer (解压就得到一个memcached.exe文件)

    下载如下jar包,点击下载

    其他jar包可以从如下链接找到:

           

    *(注意本次测试用的tomcat7,所以对应的jar包是 ,

      如果使用的是tomcat6 则下载)

   好了,把上述jar包放到tomcat/lib 目录下,然后在测试的项目中也导入上述jar包,修改每个tomcat的配置文件tomcat\conf\context.xml

  在<context>...</context>标签之间加入如下代码:

  

关闭所有tomcat,打开cmd 进入memcached解压到的路径D:\MyServer 输入:memcached.exe –d install 回车安装windows服务

输入:memcached.exe –p 11211 –d start 回车启动memcached服务,启动三个tomcat

在浏览器中输入  重复刷新发现session的值不变如下所示,session共享成功

SESSION ID:76AC7C56C4B278ADFDEC6EA782192D15-n1.tomcat7-1

posted on
2013-01-22 15:52  阅读(
...) 评论(
...) 收藏

转载于:https://www.cnblogs.com/fish-king/archive/2013/01/22/2871531.html

你可能感兴趣的文章
数的划分(动态规划)
查看>>
.Net EntityFramework学习笔记
查看>>
挣值管理(EVT)
查看>>
20180711-Java Number类
查看>>
考试系统优化——准备工作
查看>>
Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
查看>>
Decker hello world
查看>>
crontab定时任务(待补充)
查看>>
转载:PostgreSQL学习手册(性能提升技巧)
查看>>
javascript学习笔记1
查看>>
LVM调整磁盘分区大小
查看>>
sql使用row_number()查询标记行号
查看>>
PowerDesigner安装教程(含下载+汉化+破解)
查看>>
hdu5236 Article
查看>>
源码 springmvc 请求加载过程
查看>>
linux-memcache安装及memcached memcache扩展
查看>>
python logging 日志使用
查看>>
Effective Java 74 Implement Serializable judiciously
查看>>
Java Concurrency In Practice -Chapter 2 Thread Safety
查看>>
13.constexpr
查看>>