其它server不会保存1号用户的Session信息。nginx
现在的负载均衡server通常都有这个功能(nginx) 数据库
但是假设出现如下的状况 缓存
这个时候1号server宕机的状况下,负载均衡server会把1号用户导流到2号或者3号server上面,但是用户在2和3号server上面没有安全的上下文环境。server会通知用户又一次登陆。这样用户体验确定会受到影响。而且很是可能用形成用户的数据丢失。安全
每台server保留所实用户的Session这就关系到应用server之间的Session同步问题。实时性要求比較高。session
这样的方式可以避免上面server独立Session所遇到的问题,例如如下图所看到的:负载均衡
这样的方式即便出现第一种状况那么2和3号server上面也保存的1号的Session信息,当出现故障负载均衡server把1号用户导流到2和3号server上面时。server也会发现有1号用户的安全上下文,可以继续訪问而且不需要又一次登陆。cdn
但是这样的方式也有缺点,那就是相应用server的Session同步实时性要求比較高,而且会带来额外的跨带开销。而且当Session之遥有变化时,就需要同步。假设Session里面的信息量比較大。那个会占用至关大的内存消耗。server
server共享Session信息:blog
每个用户的Session信息都会被存储到应用以外的另一台server(多是数据库,也多是KV存储服务),这样应用server就不用存储每个用户的Session信息了,节约了很是大的内存开销。内存
当不一样应用server需要用到Session信息的时候就去找共享Sessionserver来获取信息。
这样负载均衡server也就不用把用户固定的分配到一台server上面了,而且也不用server之间来复制Session信息,当Session信息发生改变时,应用server都去共享server改动信息就能够。
比較依赖于共享server,一旦共享server或者共享server集群出现故障。用户会收到很是大影响