传统项目基于tomcat cookie单体会话升级分布式会话解决方案

传统捞项目基于servlet容器 cookie单体会话改造分布式会话方案

##引入redis,spring-session依赖


    
      org.springframework.boot
      spring-boot-starter-data-redis
    
    
      org.springframework.session
      spring-session-data-redis
    

##修改配置文件

spring:
  application:
    name: hnmop-consumer
  session:
    timeout: 3600
    store-type: redis
    redis:
      namespace: yym:session
  redis:
    lettuce:
      pool:
        max-idle: 50
        min-idle: 10
        max-wait: 300
        max-active: 25
    timeout: 30000
    cluster:
      nodes:
        - 192.168.3.156:6379
        - 192.168.3.156:6380
        - 192.168.3.156:6381
        - 192.168.3.156:6382
        - 192.168.3.156:6383
        - 192.168.3.156:6384
#        - redis-service.hdsst-ns.svc.cluster.local:6379
#        - redis-service.hdsst-ns.svc.cluster.local:6379
#        - redis-service.hdsst-ns.svc.cluster.local:6379
#        - redis-service.hdsst-ns.svc.cluster.local:6379
#        - redis-service.hdsst-ns.svc.cluster.local:6379
#        - redis-service.hdsst-ns.svc.cluster.local:6379
    password: 123456
    database: 0

##启动类加入EnableRedisHttpSession注解

@EnableRedisHttpSession(redisNamespace = "yym:session", maxInactiveIntervalInSeconds = 3600)

##原理

##spring自动配置spring.factories

传统项目基于tomcat cookie单体会话升级分布式会话解决方案_第1张图片

传统项目基于tomcat cookie单体会话升级分布式会话解决方案_第2张图片

传统项目基于tomcat cookie单体会话升级分布式会话解决方案_第3张图片

##生成SessionRepositoryFilter过滤器对象

传统项目基于tomcat cookie单体会话升级分布式会话解决方案_第4张图片

传统项目基于tomcat cookie单体会话升级分布式会话解决方案_第5张图片

##使用包装的SessionRepositoryRequestWrapper的request   SessionRepositoryResponseWrapper的response

传统项目基于tomcat cookie单体会话升级分布式会话解决方案_第6张图片

你可能感兴趣的:(分布式,java)