J2Cache 2.6.0 發布,支持分布式 session 存儲管理

2021-01-09 開源中國

J2Cache 2.6.0 版本發布啦,該版本最最值得關注的就是支持分布式的 session 存儲管理,支持不同的 Servlet 容器。

此外,該版本包含了如下小改動:

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 點讚!

相關焦點

  • J2Cache 2.7.0 發布了,支持 Lettuce 替代 Jedis
    J2Cache 2.7.0 在周末悄沒聲息的發布了!!!
  • ...admin-cloud 2.3 發布,完美支持分布式事務 - OSCHINA - 中文...
    .RELEASE spring-cloud-alibaba -> 2.2.1.RELEASE seata.version -> 1.2.0 fastjson.version -> 1.2.68 j2cache.version -> 2.8.2-release jjwt.version -
  • J2Cache 2.7.7 發布,Lettuce 增加連接池模式
    J2Cache core 模塊昨晚發布了 2.7.7 版本,該版本主要是針對之前的 Lettuce 支持進行了改進,增加了連接池支持
  • 分布式集群環境下的Session共享解決方案
    HttpSession是通過Servlet容器創建和管理的,像Tomcat/Jetty都是保存在內存中的。而如果我們把web伺服器搭建成分布式的集群,然後利用LVS或Nginx做負載均衡,那麼來自同一用戶的Http請求將有可能被分發到兩個不同的web站點中去。那麼問題就來了,如何保證不同的web站點能夠共享同一份session數據呢?
  • MongoDB 2.0.6 發布,分布式文檔資料庫
    主要功能特性有:面向集合存儲,易存儲對象類型的數據。 模式自由。支持動態查詢。 支持完全索引,包含內部對象。 支持查詢。 支持複製和故障恢復。 使用高效的二進位數據存儲,包括大型對象(如視頻等)。我們稱這種存儲形式為BSON(Binary Serialized dOcument Format)。MongoDB服務端可運行在Linux、Windows或OS X平臺,支持32位和64位應用,默認埠為27017。推薦運行在64位平臺,因為MongoDB在32位模式運行時支持的最大文件尺寸為2GB。
  • Session是怎麼實現的?存儲在哪裡?
    事實上,各種web框架早已考慮到這個問題,比如asp.NET,是支持通過配置文件修改session的存儲介質為sql server的,所有機器的會話數據都從同一個資料庫讀,就不會存在不一致的問題;php支持把會話數據存儲到某臺memcache伺服器,你也可以手工把session文件存放的目錄改為nfs網絡文件系統,從而實現文件的跨機器共享。
  • Rainbond 5.0 正式發布,支持對接管理已有 Kubernetes 集群
    此次重構升級了Kubernetes和Docker的版本,並引入了Kubernetes的Deployment、Secret、Ingress、ConfigMap等資源,同時可支持對接已有Kubernetes集群。在應用存儲方面,運行時提供了分布式存儲和本地存儲的Provider, 在網絡方面增加了對Flannel的支持,在服務調度方面增加了更多的調度選擇機制。
  • IDC數據中心與分布式存儲
    它為操作和維護提供設施基礎,並為集中收集、存儲、處理和發送數據的設備提供相關服務。IDC提供的主要服務包括域名註冊和查詢託管、資源租賃、系統維護、管理服務等支持和運營服務。產業2.0時代:隨著網際網路高速發展網站數量激增,企業已經意識到IDC是企業IT基礎建設的核心。IDC除基礎的主機託管業務外,同時提供數據存儲管理、安全管理、網絡互聯、出口帶寬的網絡選擇等服務。
  • IPFS分布式存儲的落地應用
    IPFS作為下一代網際網路底層通信協議,自發布以來已經成功應用在數據存儲、文件傳輸、網絡視頻、社交媒體、去中心化交易等各個領域。基於IPFS搭建的APP、應用和平臺等,正在重構整個網際網路。ipfs基於p2p網絡並進行優化,迅雷適用的場景,ipfs同樣適用!
  • MongoDB 4.0 首個 RC 版發布,支持多文檔事務
    MongoDB 因其靈活的文檔模型、可擴展分布式設計廣受開發者喜愛,在此基礎上,MongoDB 4.0 推出了更強大的功能支持,目前 4.0 第一個 RC 版本已經發布。
  • 巨杉金融級分布式資料庫SequoiaDB 3.2發布,特性全面強化
    2019年5月上旬,巨杉資料庫在DTCC(2019中國資料庫技術大會)上隆重發布了旗下核心分布式資料庫產品SequliaDB 3.2版本,並就當前業內需求趨勢,資料庫的創新理念和創新之處進行了一番介紹。
  • 八年鍛造,為雲而生,QingStor 分布式存儲全線升級
    深圳,2020年9月2日——  9月2日,青雲QingCloud (qingcloud.com) 「雲無界 數未來」2020 全國巡展深圳站開幕,QingStor企業級分布式存儲全線升級,並全新推出容器存儲一體機 KubeSphere KF3000 和分布式全快閃記憶體儲一體機 QingStor NF6000 兩大新品。
  • Spring Cloud學習筆記—分布式下的Session共享該如何解決
    沒錯,這確實是一種解決方案,並且,在一些中小型分布式站點裡,也被經常使用。Tomcat等容器也支持以簡單的配置來實現Session複製。但是,當分布式的規模變大,伺服器數量變多時,這種方式變得不太可靠。這是因為,Session的複製也是需要時間的,為了保證一致性,每個涉及Session更新的請求可能都需要等待Session完全複製一遍後才能算響應完成。
  • Apache Kylin 4.0.0-alpha 發布,開源分布式分析引擎
    Apache Kylin 4.0.0-alpha 發布了。
  • XXL-JOB v1.6.0 發布,分布式任務調度平臺
    1.2 特性1、簡單:支持通過Web頁面對任務進行CRUD操作,操作簡單,一分鐘上手;2、動態:支持動態修改任務狀態、暫停/恢復任務,以及終止運行中任務,即時生效;3、調度HA:「調度中心」基於集群Quartz實現,可保證調度中心HA;4、任務HA:任務"執行器
  • Apache Kylin 2.4.0 發布,支持 Kafka 與 Hive 表 join
    Apache Kylin 2.4.0 發布了,Apache Kylin 是一個開源的分布式的 OLAP 分析引擎,來自 eBay
  • zuihou-admin-cloud 1.8 發布,支持 Cloud Alibaba 2.2.0
    升級 Alibaba Cloud 2.2.0.RELEASE2. 修復 數據自動注入器 注入遠程調用的數據類型擦除的bug3. 新增 ribbon自定義負載均衡規則 實現簡單的灰度發布4. 完善父類控制器:BaseController2,新增模板方法:CRUD、導入、導出、預覽、分頁(排序) 5.
  • PyTorch 0.2發布:更多NumPy特性,高階梯度、分布式訓練等
    李林 編譯整理量子位 報導 | 公眾號 QbitAIFacebook的機器學習框架(之一)PyTorch今天發布了新版本:0.2.0。這一版本引入了NumPy風格的Broadcasting、Advanced Indexing,增加了高階梯度和分布式PyTorch。
  • ...中國企業級外部存儲市場銷售額穩居第二 分布式存儲營收增長三倍
    近日,國際數據公司(IDC)發布《中國企業級外部存儲市場2020年第一季度跟蹤報告》(預備版)。數據報告顯示,2020年第一季度中國企業級存儲市場總體營收6.87億美元,相比去年同期下降7.9%。在此市場環境下,紫光旗下新華三集團逆勢領先,在中國企業級存儲市場銷售額佔比穩居第二。
  • Apache Kylin 2.3.0 發布,開源分布式分析引擎
    Apache Kylin 2.3.0 已發布,這是繼 2.2.0 之後的一個重要版本,包含超過 250 個錯誤修復和功能增強。