以下是基于日常看的一些课程和博客,如有不对,敬请指教。
目前两种解决方案是cookie(信息存储在客户端,不太安全)和session(信息存储在服务器,较为安全,但是对服务器的存储造成了很大压力)
session还有一些问题,即当需要部署集群时,负载均衡时,由一台服务器生成的sessionID并不能被其他服务器所识别,那么有如下几种解决方案。
- 定向请求,每次请求时,对于一个sessionID则指定打到特定的服务器上。这样的问题很明显,负载均衡失效了。
- sessionID复制,即服务器A生成sessionID时,向其他所有服务器都传递这个sessionID,各自保存一份。问题在于存储压力变大,且可能在sessionID传递还未结束时,会有其他请求过来,造成请求未响应的问题。
- session共享,即 将session存储到一个单一的session服务器上,每次都由集群向session服务器请求session。但是这样如果session服务器挂了就会导致全部都消失了,那么对session服务器建立集群,也不失为一种方法。
- 将不重要的信息利用cookie存储,将重要的信息存储到数据库中,并实时备份,重要的信息直接调用数据库,这里的数据库不止是传统的关系型,也有NoSQL一类。