java面试题整理《微服务篇》二

125 阅读2分钟

BASE理论

BASE是 Basically Available(基本可用)、 Soft state(状态)和 Eventually consistent(最终一致性)

BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP 定理逐步演化而来的。BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点 采用适当的方式来使系统达到最终一致性。

基本可用

①晌应时间上的损失:正常情况下,处理用户请求需要0.55返回结果,但是由于系统出现故障,处理用户请求的时间变为3s。

②系统功能上的损失:正常情况下,用户可以使用系统的全部功能,但是由于系统访问量突然剧增,系统的部分非核心功能无法使用

软状态:数据同步允许一定的延迟

最终一致性:系统中所有的数据副本,在经过一段时间的同步后,最终能够达到个一致的状态,不要求实时

分布式下Session共享的方案

采用无状态服务,抛弃 session

存入 cookie(有安全风险)

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

IP绑定策略:使用 Nginx中的IP绑定策略,同一个IP只能在指定的同—个机器访问,但是这样做失去了负载均衡的意义,当挂掉一台服务器的时候,会影晌一批用户的使用,风险很大;

使用 Redis存储:把 Session放到Reds中存储,虽然架构上变得复杂,并且需要多访问一次 Redis,但是这种方案带来的好处也是很大的(实现了 Session共享、可以水平扩展、服务器重启 Session不丢失、不仅可以跨服务器 Session共享,甚至可以跨平台)