.小明提交订单,此时请求通过代理服务发送到业务系统二,然而,二系统此时并没有查询到小明的登录信息,就被无情的跳转到登录页了。
<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>配置 redis 参数,软件自行安装:
## redis #session存储类型 spring.session.store-type=redis spring.redis.database=0 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=123456 spring.redis.pool.max-active=8 spring.redis.pool.max-wait=-1 spring.redis.pool.max-idle=8 spring.redis.pool.min-idle=0 spring.redis.timeout=3000简单的用户登录实现,省略部分代码:
// 堆代码 duidaima.com @RequestMapping(value="login",method=RequestMethod.POST) public Result login(String username,String password,HttpServletRequest request,HttpServletResponse response) throws Exception { SysUser user = userService.getUser(username); if(user==null) { return Result.error("用户不存在"); }else { if(user.getPassword().equals(password)) { request.getSession().setAttribute("user", user); return Result.ok(); }else { return Result.error("密码错误"); } } }配置代理实现,基于 Nginx:
server { listen 80; server_name blog.52itstyle.vip; location / { proxy_pass http://192.168.1.2:8080; } location /cart { proxy_pass http://192.168.1.3:8080$request_uri; } location /order { proxy_pass http://192.168.1.4:8080$request_uri; } }配置成功后登录系统,在 redis 中查询用户信息:
127.0.0.1:6379> keys * 1) "spring:session:expirations:1562577660000" 2) "spring:session:sessions:1076c2bd-95b1-4f23-abd4-ab3780e32f6f" 3) "spring:session:sessions:expires:1076c2bd-95b1-4f23-abd4-ab3780e32f6f"小结