- 浏览: 366259 次
- 性别:
- 来自: 阿里巴巴
文章分类
- 全部博客 (207)
- Maven (5)
- Cassandra (2)
- Hadoop (3)
- LDAP (2)
- SOA (7)
- 认证、加密、安全 (6)
- 搜索引擎相关技术 (3)
- REST (7)
- 数据库 (11)
- Java 基础相关 (38)
- UML (1)
- Java NIO 框架 (3)
- javassist (1)
- Bean容器 (4)
- 网络编程 (1)
- NoSQL (4)
- XML、Json (1)
- JS (2)
- Google (6)
- Warp-MVC (2)
- 持久层 (2)
- sitebricks (1)
- MVC (6)
- CSS (2)
- JPA (2)
- RDBMS (5)
- cache (4)
- tomcat (1)
- 其它 (3)
- eclipse (1)
- bigpipe (1)
- RDBMS MySQL (1)
- MySQL (2)
- ant (1)
- 前端 (2)
- Groovy (1)
- linux (3)
- Scala (1)
- zookeeper (1)
- redis (2)
- 测试 (1)
- 监控 (1)
- mac (3)
- 区块链 (3)
- 工具 (1)
最新评论
-
masuweng:
好好好,辛苦了!!
Spring Data JPA 简单介绍 -
masuweng:
Spring Data JPA 简单介绍 -
zhangjianxinjava:
您好,大神本人小白一个最近在研究不知道可否 通过邮箱进行交流, ...
JAVA Metrics度量工具 - Metrics Core -
xzs603:
http://zhengdl126.iteye.com/blo ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
JavaStart:
运行mysql2redis 的install.sh 文件为何提 ...
mysql到redis的复制
在公司项目里想要在前端通过nginx将请求负载均衡,而后台的几组tomcat的session通过memcached(non-sticky模式)进行统一管理,这几组tomcat部署的web app是同一应用,session的变化要统一,项目组最后采用memcached-session-manager来对tomcat的session进行管理。
session的序列化方案官方推荐的有4种
- java serialization
- msm-kryo-serializer
- msm-javolution-serializer
- msm-xstream-serializer
关于这几种,官方也给出了比较:
- Java serialization is very robust and a proven technology. The biggest disadvantage IMHO is that different class versions cannot be handled.
- Kryo is an extremely fast binary serialization library. In the popular thrift-protobuf-compare benchmark it's one of the fastest serialization toolkits - and it differs from the fastest in that it does NOT need a schema definition of serialized data, which is a requirement for serialization arbitrary session data. A disadvantage of using kryo based serialization is that it's binary - you just cannot look how the serialized object graph looks like. This is my favorite serialization strategy, just because of its great performance.
- Javolution is a very good and fast xml binding toolkit. The reflection part is written by me and adds the bits that are actually binding POJOs to xml. It is covered well with unit tests, however I cannot guarantee that there's no issue left to solve (actually this serialization strategy was in use in my own projects, now replaced by kryo based serialization).
- XStream based serialization should be very robust as this is an often used java object binding library. The biggest disadvantage IMHO is the relatively bad performance.
要注意的是javolution是唯一支持copyCollectionsForSerialization="true"时对能对线程不安全的collection进行序列化特性的,其他的方案要对序列化线程不安全的collection时特别处理,性能最好的序列化方案是Kryo。
网上有一些例子都是关于Javolution的,我个人倾向于使用Kryo,至于序列化出现的问题还可以自己解决,不过先使用java IO来配置,先用起来,以后再慢慢优化,换成Kryo。
直接在$CATALINA_HOME/lib/下添加memcached-2.5.jar和memcached-session-manager-1.4.0.jar,然后对$CATALINA_HOME/conf/server.xml修改相应的配置
- <Context path="/webapp" docBase="D:\webapp\WebRoot" reloadable="false">
- <Manager
- className= "de.javakaffee.web.msm.MemcachedBackupSessionManager"
- memcachedNodes= "n1:192.168.112.1:11211,n2:192.168.112.2:11211"
- sticky="false"
- lockingMode="auto"
- requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"
- sessionBackupAsync= "false"
- sessionBackupTimeout= "0"
- memcachedProtocol="binary"
- transcoderFactoryClass= "de.javakaffee.web.msm.JavaSerializationTranscoderFactory"
- />
- </Context>
<Context path="/webapp" docBase="D:\webapp\WebRoot" reloadable="false"> <Manager className= "de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes= "n1:192.168.112.1:11211,n2:192.168.112.2:11211" sticky="false" lockingMode="auto" requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$" sessionBackupAsync= "false" sessionBackupTimeout= "0" memcachedProtocol="binary" transcoderFactoryClass= "de.javakaffee.web.msm.JavaSerializationTranscoderFactory" /> </Context>
由于项目对session 管理模式是non-sticky的,所以不配置failoverNodes,任何一个web工程对session的修改要及时更新到memcache上,所以sessionBackupTimeout为0(不同的应用有不同的配置,这样配置是符合我现在这个项目要求的)。
评论
3 楼
achenbj
2013-11-28
我们的问题可能是我们的四个tomcat中的配置不一致造成的,改成一致的之后效果好了点了。
2 楼
achenbj
2013-11-23
我们这边之前sessionBackupTimeout配置了60,直接报错,最后还是调整到了180000之后才少了些报错。
当时在某些高并发的情况下还是会有上面1楼报的错误,此时登录还是没有什么明显的问题。在注册时会出现较多的问题。
当出现连接不上节点的时候会出现登录注册失败的情况。
还没有找到合适的解决办法。
当时在某些高并发的情况下还是会有上面1楼报的错误,此时登录还是没有什么明显的问题。在注册时会出现较多的问题。
当出现连接不上节点的时候会出现登录注册失败的情况。
还没有找到合适的解决办法。
1 楼
chenjianweicjwjw
2012-04-19
你这样配置成sessionBackupTimeout="0"不会报错吗?如:2012-4-19 16:28:15 de.javakaffee.web.msm.BackupSessionTask storeSessionInMemcached
信息: Could not store session 22765CC5A113DAB4E64355DAB3131105-n1.jvmtomcat7 in memcached.
2012-4-19 16:28:15 de.javakaffee.web.msm.BackupSessionTask doBackupSession
信息: Could not store session 22765CC5A113DAB4E64355DAB3131105-n1.jvmtomcat7 in memcached due to unavailable node n1.
Note that this session was relocated to this node because the original node was not available.
信息: Could not store session 22765CC5A113DAB4E64355DAB3131105-n1.jvmtomcat7 in memcached.
2012-4-19 16:28:15 de.javakaffee.web.msm.BackupSessionTask doBackupSession
信息: Could not store session 22765CC5A113DAB4E64355DAB3131105-n1.jvmtomcat7 in memcached due to unavailable node n1.
Note that this session was relocated to this node because the original node was not available.
发表评论
-
浮点数计算
2020-08-25 16:15 325@Test public void test2() ... -
AQS、ReentrantLock、CLH锁 、MCS锁 分析
2018-12-25 23:45 6791. ReentrantLock的介绍 Reentran ... -
Java并发编程:CountDownLatch、CyclicBarrier、Semaphore、Phaser
2015-02-26 16:41 1370在java 1.5中,提供了 ... -
技术网站资料
2014-07-17 11:53 0http://javakaiyuan.com ht ... -
Java之死-前言
2014-07-15 10:14 752用了好多年的java之后越来越感觉其并不像 ... -
通过JVM获取相关的服务器信息 .
2013-01-07 20:18 2170http://blog.csdn.net/zgmzyr/art ... -
Java中使用OpenSSL生成的RSA公私钥进行数据加解密
2012-10-25 11:34 4377openssl genrsa -out rsa_pr ... -
java开源
2012-05-29 14:34 1495开源不是开放编译器的源代码,而是写了一个软 ... -
用Ant打Jar包--在Manifest中引用Classpath
2012-03-15 13:20 1592用Ant打Jar包--在Manifest ... -
分布式锁服务器
2011-11-07 22:14 1950在分布式系统中如何 ... -
Java 7 Fork/Join 并行计算框架概览
2011-11-05 16:26 1075http://www.iteye.com/topic/ ... -
Apache Jakarta Commons 工具集简介
2011-11-03 11:22 1592org.apache.commons.collectio ... -
JDBC batch批处理Statement executeBatch 详解
2011-09-28 13:25 2746http://blog.csdn.net/basene ... -
代码动态生成利器ASM
2011-09-22 20:02 1058前言 代码生成器(code generato ... -
Fastjson技术内幕
2011-09-13 23:51 1342文章来源:http://code.alibabatech.co ... -
基于Spring可扩展Schema提供自定义配置支持
2011-08-07 16:01 1233在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直 ... -
Mule 与 Spring2.0's extensible XML configuration mechanism
2011-08-07 15:50 1362mule2.2.1已经采用从sprin ... -
alibaba fastjson(json序列化器)序列化部分源码解析
2011-08-03 21:11 2017本文copy自http://www.flydmeng.co ... -
JVM 远程调试 参数
2011-07-28 09:49 1889远程调试 参数 -server -Xdebug -Xnoag ... -
Sequential Lock in Java
2011-07-03 16:22 14031 Overview Linux内核中常见的同步机制 ...
相关推荐
这些库提供了与memcached服务器交互的API,使得Tomcat可以将session数据序列化并存储到memcached中。 配置过程通常包括以下几个步骤: 1. 在Tomcat的`conf/server.xml`文件中,为每个Host元素添加`<Manager>`标签,...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...
nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。 其支持的功能主要为: 1、透明的调用远端服务器提供的功能...