btg-httpsession是实现了httpsession标准适用于普通web项目和jfinal项目的分布式session
一、配置方式: 1、通过filter配置(非jfinal项目推荐配置方式); /** * * BTGHttpSessionRequest替换filter(local session管理) * 注意:此filter优先级必须大于业务系统处理相关filter * * 若需要redis、db模式的session管理: * 1、请在初始化配置参数init-param * sessionDao:可选,默认为local。 * local-使用local的BTGSessionDao; * redis-使用redis的BTGSessionDao * db-使用redis的BTGSessionDao; * dname:可选,默认为jfinal默认; * 若sessionDao为redis,该参数则表示RedisPlugin的name; * 若sessionDao为db,该参数表示ActiveRecordPlugin的name; * 2、或者扩展此类,重写init方法完成sessionDao的初始化即可 */ <filter> <filter-name>btgsession</filter-name> <filter-class>cn.usbtg.httpsession.servlet.filter.BTGHttpSessionFilter</filter-class> <init-param> <param-name>sessionDao</param-name> <param-value>redis</param-value> </init-param> <init-param> <param-name>dname</param-name> <param-value>myredis</param-value> </init-param> </filter> <filter-mapping> <filter-name>btgsession</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 2、(jfinal项目推荐)使用jfinal的plugin+interceptor(interceptor或handler,二选一)配置(若使用默认session管理容器无需配置plugin ,仅当需要使用非默认BTGSessionDao实现时,需要在plugin中进行初始化); JfinalConfig:可选配置,用户初始化sessionDao实现方案 public void configPlugin(Plugins me) { //local(默认,无需配置) BTGSessionDao localSessionDao = new BTGLocalSessionDao(); BTGSessionPlugin sessionPlugin = new BTGSessionPlugin(localSessionDao); me.add(sessionPlugin); //redis BTGSessionDao redisSessionDao = new BTGRedisSessionDao(); BTGSessionDao redisSessionDao = new BTGRedisSessionDao("myredis"); BTGSessionPlugin sessionPlugin = new BTGSessionPlugin(redisSessionDao); me.add(sessionPlugin); //db BTGSessionDao dbSessionDao = new BTGDBSessionDao(); BTGSessionDao dbSessionDao = new BTGDBSessionDao("mydb"); BTGSessionPlugin sessionPlugin = new BTGSessionPlugin(dbSessionDao); me.add(sessionPlugin); } Interceptor:必须配置,用于替换session管理机制 me.add(new BTGHttpSessionInterceptor()); Handler:必须配置,用于替换session管理机制 me.add(new BTGHttpSessionHandler()); 二、调用API: 1、使用BTGHttpSessionContext接口的实现类BTGStandardSessionContext直接完成对session的操作; getSession(String sessionId):BTGStandardSessionContext.getSessionContext().getSession(sessionId) getNewSession():BTGStandardSessionContext.getSessionContext().getNewSession() 更多api请查看BTGSessionContext接口 2、(推荐)使用静态访问类SessionKit完成对session的操作; getSession(String sessionId):SessionKit.getSession(sessionId) getNewSession():SessionKit.getNewSession() 更多api请查看SessionKit类
基于jfinal实现的一套:独立于servlet容器的、支持分布式的、企业级session管理解决方案。实现了本地session存储、redis session存储、db session存储,并保留sessionDao接口,可自定义session存储实现。提供了jfinal插件BTGSessionManagerPlugin,用于初始化SessionKit。SessionKit提供BTGSessio
本文向大家介绍浅析PHP分布式中Redis实现Session的方法,包括了浅析PHP分布式中Redis实现Session的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍的是PHP分布式中Redis实现Session的方法,下面话不多说,直接先来看两个方法是什么 方法一: 找到配置文件php.ini,修改为下面内容,保存并重启服务 方法二: 直接在代码中加入以下内容: 注:如果配置文件red
面试题 集群部署时的分布式 session 如何实现? 面试官心理分析 面试官问了你一堆 dubbo 是怎么玩儿的,你会玩儿 dubbo 就可以把单块系统弄成分布式系统,然后分布式之后接踵而来的就是一堆问题,最大的问题就是分布式事务、接口幂等性、分布式锁,还有最后一个就是分布式 session。 当然了,分布式系统中的问题何止这么一点,非常之多,复杂度很高,这里只是说一下常见的几个问题,也是面试的
BTG是一款采用C++和Libtorrent库开发的,基于GPL协议发布的linux下BT客户端软件。这款BT工具的最大特色就是可以分别基于 Ncurses、Gtkmm和www GUI三种前端对处于后台的BT实体下载后端进行操作。目前这款BT工具正处于开发初期阶段,对“下载选中文件”以及DHT的支持,需要 Rasterbar libtorrent-0.13rc1或更新的版本。不过就其当前优秀灵活的
背景 在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。 一、使用分布式锁要满足的几个条件: 系统是一个分布式系统(关键是分布式,单机的可以
本文向大家介绍Java分布式session存储解决方案图解,包括了Java分布式session存储解决方案图解的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要探讨集群后不同Web服务器获取Session数据的问题解决方案。 Session Stick Session Stick 方案即将客户端的每次请求都转发至同一台服务器,这就需要负载均衡器能够根据每次请求的会话标识(SessionId)