SpringBoot Session共有
7768 ワード
セッション共有
要求がNginxプロセッサに到着した後に先に要求の配布を行い、要求がreal server 1によって処理されたと仮定し、real server 1は要求を処理する時、Sessionを格納しても読み出しても、自分のメモリのSessionを操作するのではなく、Sessionプロセッサを操作する.real server理リクエストの場合,これによりSession享受が実現される.
1、pom.xml
2、application.yml
3、要求制御層
8080ポートと8081ポートでそれぞれプログラムを起動
4、構成Nginx nginx.confは、次のように構成する .
nginxを起動し、Postにアクセスします->http://127.0.0.1:83/save?name=テスト、セッションを保存してGet->にアクセスhttp://127.0.0.1:83/get、この戻りポートが8080と8081の間で切り替えられていることがわかります.
要求がNginxプロセッサに到着した後に先に要求の配布を行い、要求がreal server 1によって処理されたと仮定し、real server 1は要求を処理する時、Sessionを格納しても読み出しても、自分のメモリのSessionを操作するのではなく、Sessionプロセッサを操作する.real server理リクエストの場合,これによりSession享受が実現される.
1、pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
2、application.yml
spring:
redis:
database: 0
host: 127.0.0.1
port: 6379
password:
jedis:
pool:
max-active: 8
max-idle: 8
max-wait: -1ms
min-idle: 0
server:
port: 8081
3、要求制御層
@RestController
public class SessionController {
@Value("${server.port}")
String port;
@PostMapping("/save")
public String saveName(String name, HttpSession session) {
session.setAttribute("name", name);
return port;
}
@GetMapping("/get")
public String getName(HttpSession session) {
String name = session.getAttribute("name").toString();
return port + ":" + name;
}
}
8080ポートと8081ポートでそれぞれプログラムを起動
4、構成Nginx
upstream sang.com {
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=1;
}
server {
listen 83;
server_name localhost;
location / {
proxy_pass http://sang.com;
proxy_redirect default;
}
}
nginxを起動し、Postにアクセスします->http://127.0.0.1:83/save?name=テスト、セッションを保存してGet->にアクセスhttp://127.0.0.1:83/get、この戻りポートが8080と8081の間で切り替えられていることがわかります.