memcached服务器两台:192.168.223.136,192.168.223.137

tomcat多实例:192.168.233.146:8081,192.168.223.146:8082

for tomcat configure(这里使用的tomcat8的版本)

参考:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration

Add memcached-session-manager jars to tomcat

wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/2.1.1/memcached-session-manager-2.1.1.jar

wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc8/2.1.1/memcached-session-manager-tc8-2.1.1.jar

wget http://repo1.maven.org/maven2/net/spy/spymemcached/2.11.1/spymemcached-2.11.1.jar

下载需要的memcached的三个jar文件

将这三个jar文件复制到$CATALINA_HOME/lib/目录下

由于采用的多实例

export CATALINA_HOME=/usr/local/apache-tomcat-8.5.16
export CATALINA_BASE=/usr/local/tomcat-instance/tomcat1

如果仅仅只是用java来做序列化器只需要这三个包就ok

配置tomcat多实例:

tomcat1的添加配置如下:

<Context path="" docBase="ROOT" reloadable="true">
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  memcachedNodes="n1:192.168.223.136:11211,n2:192.168.223.137:11211"       这里的ip就是memcached服务器的两个ip
  failoverNodes="n1"
  requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    />
</Context>

将红色添加的部分放进各应用程序的context组件内

tomcat2的添加配置和tomcat1一样:

<Context path="" docBase="ROOT" reloadable="true">
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  memcachedNodes="n1:192.168.223.136:11211,n2:192.168.223.137:11211"
  failoverNodes="n1"
  requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
     />
</Context>

开启各自的tomcat的服务

接下来配置memcached服务器,这里采用的yum安装:

yum install memcached -y(两台服务器192.168.223.136,192.168.223.137分别都给装上)

访问中可以看见session会话保持已经成功,查看memcached缓存信息:

[root@wadeson ~]# memcached-tool 127.0.0.1
# Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM
6 304B 553s 1 2 no 0 0 0

然后只需要配置前端代理到tomcat即可实现负载均衡

另补充:

如果需要采用其他的序列进行session保持:

1、Example for sticky sessions + kryo(需要的包

<Context>
...
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context> 2、javolution-serializer: msm-javolution-serializerjavolution-5.4.3.<Context>
 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
 memcachedNodes="n1:192.168.1.155:11211,n2:192.168.1.11:11211"
 failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.javolutionTranscoderFactory"    各个序列器就这里做了变化

/>
</Context>
3、If you're using Redis, you need the jedis-2.9.0.jar.
更多详情参考:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration

tomcat结合memcached构建session服务器的更多相关文章

  1. Tomcat通过Memcached实现session共享的完整部署记录

    对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式:一种是把所有Ses ...

  2. Nginx反代至Tomcat基于memcached的session保持

    实现功能:基于前面tomcat基础简介与示例文章 (1) tomcat cluster将会话保存至memcached中:实现模型: 这里写图片描述 配置B,C主机安装openjdk与tomcat[本次 ...

  3. session服务器Nginx+Tomcat+Memcached集群Session共享

    cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...

  4. Nginx+Tomcat+Memcached实现tomcat集群和session共享

    一.Nginx安装 详见前文:http://www.cnblogs.com/yixiwenwen/p/3574097.html 二.memcached安装和启动 详见前文:http://www.cnb ...

  5. Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

  6. 【转】 Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

  7. Tomcat使用Memcached Session Manager管理Session

    Tomcat使用Memcached Session Manager管理Session 废话不多说,直接进入主题.项目使用阿里云负载均衡+ECS服务器集群进行部署,Tomcat使用8.5版本.阿里云负载 ...

  8. 基于Memcached的Nginx服务器集群session共享

    原料:jdk1.8,tomcat7,nginx1.16,memcached-1.2.6,Mem-Tomcat需要的jar包,基于windows7.所有的点击以下链接可下载 链接:https://pan ...

  9. 分布式Session共享(二):tomcat+memcached实现session共享

    一.前言 本文主要测试memcached实现session共享的实现方式,不讨论如何让nginx参与实现负载均衡等. 二.环境配置 本测试在Window下进行 name version port To ...

随机推荐

  1. 利用MFC实现浏览器的定制与扩展(JavaScript与C++交互)

    原文地址:http://www.vckbase.com/document/viewdoc/?id=1486 浏览器的定制与扩展       作者:李汉鹏 下载源代 码  本文分如下章节: 前 言 在 ...

  2. 160229-01、web页面常用功能js实现

    web页面常用功能js实现   1.网页未加载时弹出新窗口 <body onunload="window.open('http://www.a68.cn');">< ...

  3. css如何引入外部字体?

    第一步,在CSS中引入字体并给名字取一个合适的名字,如下 1 2 3 4 5 6 7 @font-face {     /* font-properties */     font-family: p ...

  4. End-to-End Speech Recognition in English and Mandarin

    w语音识别.噪音.方言,算法迭代. https://arxiv.org/abs/1512.02595 We show that an end-to-end deep learning approach ...

  5. 小程序 Expecting 'EOF','}',',',']', got INVALID

    修改了app.json中的东西,做了注释操作,报如下错误: 修改了好一阵,一直报错,原来是json文件中无法使用注释惹的祸,具体查看:官方文档

  6. Web应用扩展系列(1):架构篇(转)

    原文:Web应用扩展系列(1):架构篇 在这篇文章中,我将尽量涵盖Web应用扩展或性能调优时可能会遇到的一些架构问题. 首先,让我们来统一一些名词或项目的概念,下文中我将列举在扩展Web应用时可能会遇 ...

  7. 【Django错误】OSError: raw write() returned invalid length 14 (should have been between 0 and 7)

    错误环境 使用Django框架创建完models类的之后,用python manage.py migrate命令来生成数据库表的时候出错 错误代码 Operations to perform: App ...

  8. Linux 2.6 内核阅读笔记 中断和异常

    2014年7月24日 中断门.陷阱门及中断门 中断是能够禁止的,能够通过告诉PIC停止对某个中断的公布.被禁止的中断是不会丢失的,在解除禁止后又会发送到CPU上. 禁止中断和屏蔽(mask)中断的不同 ...

  9. python学习笔记(二十五)重写父类方法

    python继承中,如果子类在调用某个方法时,它首先是从派生类(也就是当前类)中去找对应的方法,如果当前类中找不到对应的方法,就会去基类(派生类)中去逐个查找. 若父类的方法不能满足子类的需要,那么子 ...

  10. Boinformatics-2018-10-1-目录

    1.基因分析 --Using standard microbiome reference groups to simplify beta-diversity analyses and facilita ...