Session共享

第一種方式:經過redis共享

 

1.pom配置node

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>redis

2.添加redis地址,這裏用了集羣,單機也能夠spring

spring.redis.cluster.nodes=192.168.220.136:7001,192.168.220.136:7002,192.168.220.136:7003,192.168.220.135:7004,192.168.220.135:7005,192.168.220.135:7006數據庫

3.在啓動類上添加@EnableRedisHttpSession註解tomcat

@EnableRedisHttpSession
public class SpringBootRedisApplication extends SpringBootServletInitializer服務器

 

頁面訪問my.test.com時兩臺服務器129和133的切換效果session

查看redis狀況memcached

7001上存儲的是session過時時間,還有1582秒spring-boot

7003上存儲的是session主體,有sessionid,建立時間等3d

 

本次用到的服務器

1. 1臺Nginx 192.168.220.100

upstream redis_site{
     server 192.168.220.129:8081 weight=1;
     server 192.168.220.133:8080 weight=2;
    }

  server {
        listen       80;
        server_name  localhost;
        server_name  my.test.com;

      location =/{
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass  http://redis_site/index;

        }
       location ~/{
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass  http://redis_site;

        }

}

2. 2臺redis組成的集羣 192.168.220.136;192.168.220.135

3.2臺tomcat服務器192.168.220.129:8081;192.168.220.133:8080

 後續幾種實現方式:

  • Tomcat經過session複製的方式

 

  • Nginx經過IP-HASH方式

  • memcached的MSM(Memcached_Session_Manager)方案

  • 還有經過數據庫表存儲session的方式
相關文章
相關標籤/搜索