J2Cache 2.6.0 发布,支持分布式 session 存储管理

栏目: 软件资讯 · 发布时间: 6年前

内容简介:J2Cache 2.6.0 版本发布啦,该版本最最值得关注的就是支持分布式的 session 存储管理,支持不同的 Servlet 容器。 此外,该版本包含了如下小改动: 配置中对值包含空格的处理 CacheObject 允许在其他包内使用,并...

J2Cache 2.6.0 版本发布啦,该版本最最值得关注的就是支持分布式的 session 存储管理,支持不同的 Servlet 容器。

此外,该版本包含了如下小改动:

  • 配置中对值包含空格的处理

  • CacheObject 允许在其他包内使用,并增加支持默认值的属性读取

  • 增加 removeRegion 方法

  • 优化创建 region 的锁机制

  • 支持多种配置读取方式

Maven

<dependency>
    <groupId>net.oschina.j2cache</groupId>
    <artifactId>j2cache-core</artifactId>
    <version>2.6.0-release</version>
</dependency>

但是!!!!最最重要的是增加了全新的分布式 session 存储模块 session-manager !

session-manager 用来实现对 Java Web 应用的分布式 session 管理,它接管了 Servlet 容器自带的 session 管理机制,通过两级缓存的引入实现 session 的分布式高性能存储,同时避免对 redis 造成太大压力。

使用步骤:

1. 首先引入 maven 依赖:

<dependency>
    <groupId>net.oschina.j2cache</groupId>
    <artifactId>j2cache-session-manager</artifactId>
    <version>1.0.0-beta</version>
</dependency>

2. 在 web.xml 中定义全局过滤器

<filter>
    <filter-name>j2cache-session-filter</filter-name>
    <filter-class>net.oschina.j2cache.session.J2CacheSessionFilter</filter-class>
    <init-param><!-- 内存中存放会话数 -->
        <param-name>session.maxSizeInMemory</param-name>
        <param-value>2000</param-value>
    </init-param>
    <init-param><!-- 会话有效期,单位:秒钟 -->
        <param-name>session.maxAge</param-name>
        <param-value>1800</param-value>
    </init-param>
    <!-- cookie configuration -->
    <init-param>
        <param-name>cookie.name</param-name>
        <param-value>J2CACHE_SESSION_ID</param-value>
    </init-param>
    <init-param>
        <param-name>cookie.path</param-name>
        <param-value>/</param-value>
    </init-param>
    <init-param>
        <param-name>cookie.domain</param-name>
        <param-value></param-value>
    </init-param>
    <!-- redis configuration -->
    <init-param>
        <param-name>redis.mode</param-name>
        <param-value>single</param-value>
    </init-param>
    <init-param>
        <param-name>redis.hosts</param-name>
        <param-value>127.0.0.1:6379</param-value>
    </init-param>
    <init-param>
        <param-name>redis.channel</param-name>
        <param-value>j2cache-session</param-value>
    </init-param>
    <init-param>
        <param-name>redis.database</param-name>
        <param-value>0</param-value>
    </init-param>
    ......
</filter>

<filter-mapping>
    <filter-name>j2cache-session-filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

根据实际环境的情况对配置中的值进行调整,并确保该过滤器优先执行。完整示例请看 web.xml

由于 session 的存储机制和普通的缓存不一样,因此 session-mananger 模块本身并不依赖 j2cache ,而是重新实现了一个精简版的 j2cache ,并针对 session 的机制进行了优化。一级缓存使用 caffeine (expireAfterAccess),二级缓存使用 redis (hash) ,基于 redis 的 pub/sub 进行消息广播,使用 fst 序列化器,而且无法修改。

目前该功能还处于 beta 测试阶段,代码量非常少(模块源码),欢迎大家试用和挑毛病。

点赞是参与开源社区的基本礼仪,欢迎 https://gitee.com/ld/J2Cache 点赞!


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Essential C++中文版

Essential C++中文版

李普曼 (Stanley B.Lippman) / 侯捷 / 电子工业出版社 / 2013-8-1 / CNY 65.00

本书以四个面向来表现C++的本质:procedural(面向过程的)、generic(泛型的)、object-based(基于对象的)、objectoriented(面向对象的)。全书围绕一系列逐渐繁复的程序问题,以及用以解决这些问题的语言特性来组织。循此方式,你将不只学到C++的功能和结构,也可学到它们的设计目的和基本原理。 本书适合那些已经开始从事软件设计,又抽不出太多时间学习新技术的程......一起来看看 《Essential C++中文版》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码