前言:我们通常在面试的时候难免会慌张不已。想必,经历过的人都能体会。但是如果你提前预测和准备面试官要问你的问题,并想出合理的回答方式,就会轻松很多。所以接下来的面试题是我从自己和其他人的面试经历中总结出来的,可能也不是很全面,毕竟 Java 的技术点还是很多的,我所总结的不过是九牛一毛。希望能帮助到你。
一,session 共享
首先第一个要解决的就是 sesison 共享的问题,如下图。
通常有两种解决方案,第 1 种是配置 nginx 的负载集群策略为 ip_hash,第 2 种是将 session 存储到其它地方,一般推荐放到 redis 中。
第 1 种方案适合于临时解决或者是为了兼容历史项目,但是从应用服务器无状态的角度考虑,推荐把用户会话 session 放到 redis,如下图。
二,本地缓存
如果使用本地缓存,当从单体迁移到集群后,就会面临缓存同步的问题,如下图。