springsession面试题
面试官问了你一堆dubbo是怎么玩儿的,你会玩儿dubbo就可以把单块系统弄成分布式系统,然后分布式之后接踵而来的就是一堆问题,最大的问题就是分布式事务、接口幂等性、分布式锁,还有最后一个就是分布式session。
当然了,分布式系统中的问题何止这么一点,非常之多,复杂度很高,这里只是说一下常见的几个问题,也是面试的时候常问的几个。
session是啥?浏览器有个cookie,在一段时间内这个cookie都存在,然后每次发请求过来都带上一个特殊的jsessionidcookie,就根据这个东西,在服务端可以维护一个对应的session域,里面可以放点数据。
一般的话只要你没关掉浏览器,cookie还在,那么对应的那个session就在,但是如果cookie没了,session也就没了。常见于什么购物车之类的东西,还有登录状态保存之类的。
单块系统的时候这么玩儿session没问题,但是你要是分布式系统呢,那么多的服务,session状态在哪儿维护啊?
其实方法很多,但是常见常用的是以下几种:
使用JWTToken储存用户身份,然后再从数据库或者cache中获取其他的信息。这样无论请求分配到哪个服务器都无所谓。
jsessionid这个其实还挺方便的,就是使用session的代码,跟以前一样,还是基于tomcat原生的session支持即可,然后就是用一个叫做TomcatRedisSessionManager的东西,让所有我们部署的tomcat都将session数据存储到redis即可。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论