在分布式中,客户端请求会经过负载均衡进行转发,会把请求分配到服务器上,用户登录时,会有一个用户信息,通常把这个用户登录信息存储到session中,这时,会产生一个问题,怎么实现session共享,可以有三种解决方案:
1.把session存到客户端中,也就是cookie中,每次用户请求就会携带cookie。(这种方案有缺陷,就是cookie存在安全隐患问题)
2.实现session复制,用户登录之后,每台服务器把session信息进行复制。(这种会出现资源浪费的问题)
3.用nosql数据库存储,将nosql作为缓存数据库去存储session,用户登录之后将信息存到nosql数据库中,下次用户在登录的之后,先查询数据库是否存在该用户信息的session,存在就直接登录;不存在,就保存到nosql数据库中。
采取方案三有两个好处:1.减少CPU的压力(直接是在内存中读出); 2.减少io读的压力(提高访问速度,减少io的读操作)