Java -- springboot 配置 session(分布式)

1、测试环境 -- 两个tomcat:8080和8081端口

version: "3"

services:
  tomcat8080:
    image: daocloud.io/library/tomcat:8.5.15-jre8
    container_name: tomcat8080
    ports:
      - "8080:8080"
    volumes:
      - "/usr/local/service/tomcat/tomcat8080:/usr/local/tomcat/webapps"
    privileged: true

  tomcat8081:
    image: daocloud.io/library/tomcat:8.5.15-jre8
    container_name: tomcat8081
    ports:
      - "8081:8080"
    volumes:
      - "/usr/local/service/tomcat/tomcat8081:/usr/local/tomcat/webapps"
    privileged: true

2、测试环境 -- nginx转发

upstream myserver {
    server  127.0.0.1:8080 weight=1;
    server  127.0.0.1:8081 weight=1;
}

server {
    location / {
        proxy_pass http://myserver;
    }
}

3、测试环境 -- spring demo 项目:打印 sessionId

package com.vim.modules.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

@RestController
@RequestMapping(value = "/session")
public class SessionController {

    @RequestMapping(value = "/id")
    public String session(HttpServletRequest request, HttpSession session){
        return session.getId();
    }
}

4、springboot 配置 session

<dependency>
  <groupId>org.springframework.session</groupId>
  <artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.9.0</version>
</dependency>
spring.redis.host=10.10.1.127
spring.redis.port=6380
spring.redis.database=0

添加注解: @EnableRedisHttpSession

5、测试说明

1、测试java项目负责打印请求的sessionId
2、将该java项目部署到8080和8081端口启动的tomcat容器中

3、使用nginx负载均衡转发两个tomcat
4、没有使用spring session的时候,每次请求打印的sessionId不一样

5、使用spring session时,打印的sessionId开始一致

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值