大规模企业网站集群如何实现会话保持答网友


老男孩群里的伙伴困惑:
XXXXXX(44708xxxx6) 12:37:55
请教个问题,我用lvs的rr模式,(考虑过 ipvsadm -p,但是这样就失去了负载均衡的意义感觉),后端有10台web,用一台memcached专门用于存储session文件,但是现在问题是,客户端请求第一次被轮训到 web A服务器,A可以获取到本次回话的session ID,从而可以从memcached里通过session ID获取到这次回话的session ID,而第二次请求轮训到B服务器,因为第一次请求没经过web B,他不知道session ID啊,所以他从memcached中获取不到session ID。这就是现在遇到的问题。做了基于cookie的sessionID,但是考虑到客户端会禁用cookie,所以又难办了。 有啥办法呢?
谁能帮忙解答下.

老男孩老师解答参考:
中小企业方案:

1、把所有应用服务器sesson会话统一放到memcached里,web读取都读共享memcached,就保持一致了。php程序,php.ini里配,当然了,lvs -p,nginx ip_hash等等也是部分网友实现的思路。
企业集群共享会话实现架构图如下:


204932905.jpg

门户网站方案:
2、基于client cookie的sessionID是门户网站经常采用的,效率高,安全性一般,

另外cookie的数量很有限,如果不够,可以通过多值cookie解决,例如淘宝就是这么干的。
企业集群clinet会话实现架构图如下:

204931438.jpg

欢迎伙伴们加入,老男孩培训官方交流群 246054962 208160987(务必标明来自51CTO)