: 多个应用服务器进程,
: 每个进程有自己的一个比较大的CACHE(可能有100-300万用户数据)
: 这些进程可能会开头运行在同一台机器上,以后将会分布到多台机器上,
: 所有的Cache初始化时候从RDBMS里面读取.
:
: 现在的问题是如果RDBMS里面的数据起了变化,又或者多个进程中某个进程中的用户数
: 据起了变化,
: 如何同步所有这么多进程中的数据?
: 如果多个进程都在同一台服务器上,我会考虑共享内存+semaphore,
分布式缓存session
以memcache举例
笔者使用google code下面的memcached-session-manager来实现分布式环境下session的缓存,经笔者测试性能还不错。当然,读者可以按照类似思路自己实现。
memcached-session-manager项目地址:http//codegooglecom/p/memcached-session-manager/
笔者使用kryo来做对象序列化。
1.web-inf下面需要引入
kryo-1.04-all.jar
kryo-serializers-0.9.jar
msm-kryo-serializer.1.5.0.jar
2.tomcat的lib下面引入
memcached-2.5.jar
memcached-session-manager-1.5.0.jar
memcached-session-manager-tc6-1.5.0.jar
3.context.xml的context标签下面加入:
其中memcachednodes表示memcache节点,如需配置多个中间空格分开(如 n1:192.168.0.11.1:11211 n2:192.168.0.10:11211)