Spring+nginx+redis集群


在Web项目开发中,会话管理是一个很重要的部分,用于存储与用户相关的数据。通常是由符合session规范的容器来负责存储管理,也就是一旦容器关闭,重启会导致会话失效。因此打造一个高可用性的系统,必须将session管理从容器中独立出来。
  本文要说的spring-session,可以理解是替换了Servlet那一套会话管理,既不依赖容器,又不需要改动代码,并且是用了spring-data-redis那一套连接池,可以说是最完美的解决方案。当然,前提是项目要使用Spring Framework才行。

项目部分设置我们可以分三步走:

一、以下是所需要的基本的类库包(红色圈选的是spring-session及连接redis的基础库):

Spring+nginx+redis集群_第1张图片
Paste_Image.png

也可以用maven进行类库的下载及管理,如下:


    org.springframework.data
    spring-data-redis
    1.5.2.RELEASE


    org.springframework.session
    spring-session
    1.0.2.RELEASE


二、接下来是在【spring-mvc.xml】中加入redis连接配置以及spring-session与redis交互配置, 如下图:

Spring+nginx+redis集群_第2张图片
Paste_Image.png

代码明细



       
  
      

    
     
    
    
      
          
          
      


    
    
    
     
    
        
        
        
        
        
        
    
     
    
        
    
     
    
    
        
    

三、最后是在【web.xml】中加入spring-session的过滤器, 如下图:

Spring+nginx+redis集群_第3张图片
Paste_Image.png

代码明细



  
  
    org.springframework.web.context.ContextLoaderListener
  
   
  
    contextConfigLocation
    classpath*:config/spring-*.xml
  
  
  
        springmvc
        org.springframework.web.servlet.DispatcherServlet 
        
        contextConfigLocation
            classpath*:config/spring-mvc.xml 
        
  
    
  
        springmvc
        /
  
    
  
    org.springframework.web.util.IntrospectorCleanupListener
  

  
    org.springframework.web.context.request.RequestContextListener
     
   
  
    characterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
        encoding
        utf-8
    
  
    
  
        characterEncodingFilter
        /*
   
   



    springSessionRepositoryFilter
    org.springframework.web.filter.DelegatingFilterProxy


    springSessionRepositoryFilter
    /*

    
  
    404
    /error.jsp
  
  
    500
    /error.jsp
  
  
  
    index.jsp
  
     



nginx安装及配置

我们选用【nginx-1.10.2.zip】压缩包进行解压即可使用nginx。

Spring+nginx+redis集群_第4张图片
Paste_Image.png
Spring+nginx+redis集群_第5张图片
Paste_Image.png

上面两个图是对nginx的集群配置的讲解;接下来为了方便,我们把nginx注册为(window系统)系统服务:

Spring+nginx+redis集群_第6张图片
Paste_Image.png
Spring+nginx+redis集群_第7张图片
Paste_Image.png

Spring+nginx+redis集群_第8张图片
Paste_Image.png

要注意的是:创建服务时一定要用管理权限,cd到ng_srvinst目录下,运行ng_srvinst.bat install命令即可,如要删除此删除运行ng_srvinst.bat remove。

redis安装及配置

我们选用【Redis-x64-3.2.100.zip】压缩包进行解压即可使用redis。需要注意的是,spring-session要求Redis Server版本不低于2.8。
解压后,我们需要修改redis的配置文件【redis.windows-service.conf】,允许局域网内访问,如下图:

Spring+nginx+redis集群_第9张图片
Paste_Image.png

接下来为了方便,我们把redis注册为(window系统)系统服务,找到redis安装目录的【Windows Service Documentation.docx】文件即可,如下图:

Spring+nginx+redis集群_第10张图片
Paste_Image.png

如上图用,管理员权限cd到Redis目录下,打入命令:
redis-server --service-install redis.windows-service.conf --service-name redis
回车后即可在系统服务中,找到redis

Spring+nginx+redis集群_第11张图片
Paste_Image.png

总结:与tomcat7+nginx+redis集群的区别是,spring方式集群不要求tomcat的版本及jdk/jre的版本。但要求Redis Server版本不低于2.8且使用spring mvc框架。

你可能感兴趣的:(Spring+nginx+redis集群)