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共享,甚至可以跨平台)