首页 > 编程知识 正文

Java分布式面试题 Session分布式解决方案,java面试解决项目难题

时间:2023-05-05 11:36:43 阅读:194867 作者:1099

分布式中session常见问题,即session共享.传统架构中(CS/BS)session存在服务器内存中key为cookie(session的唯一Id),cookie存在客户端浏览器中.在分布式场景下,假设有两个相同的服务负责同一业务,就可能出现session不同步的问题,下面为分布式场景下session不同步的解决方案.

一、采用无状态服务,抛弃session 二、存入cookie(有安全风险) 三、服务器之间进行Session同步

这样可以保证每个服务器上都有全部的Session信息,不过当服务器数量比较多的时候,同步会有延迟甚至同步失败。

四、IP绑定策略

使用Nginx做反向代理,ngixn中的IP绑定策略(将客户端的IP进行hash运算,对hash进行取模选择对应的服务).同一IP只能在指定的同一个服务上访问,但是这样做失去了负载均衡的意义,当挂掉一台服务器的时候,会影响一批用户的使用,风险很大。

五、使用Redis存储

把Session放到Redis中储存,虽然架构上变得复杂,而且需要多访问一次Redis,但是这种方案带来的好处也很大的:
1.实现了Session共享;
2.可以水平扩展(增加Redis服务器);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。