首页新闻动态正文

不同应用服务器,session怎么共享【黑马python培训】

更新时间:2019年07月26日 10时49分52秒 来源:黑马程序员论坛

一:通过数据库mysql共享sessionid
方法一:将所有的session_id都保存在mysql数据库中,每一次请求来的时候都去检查数据库里面sessionid的情况,达到sessionid同步的目的
方法二:将sessionid的表跟所有的表放在一起,如果mysql做了主从,需要每一个数据库都存在这张表,并且时时同步
优缺点:以上两种方法,方法一比较好,分离了session表和业务表,减少了数据库的压力,mysql是基于磁盘的数据库,读写本来就比较慢,如果读写频繁的话,效率也很低,因此并不推荐这种办法。
二.通过cookie共享session
将用户访问页面产生的session信息放在cookies中,以cookie为中转站
当用户访问A服务器时,生成session信息并且保存在cookie中,当用户访问分配到服务器B时,先检查服务器有没有session信息,如果没有的话,就把cookie里面的session信息同步到服务器B
缺点:cookie共享session,安全性不高,被拦截或者伪造的可能性增大,如果客户端禁止使用cookie,都有可能无法共享session
三.通过服务器同步共享session
使用一台服务器作为登录服务器,当登录成功后,我们可以使用脚本或者守护进程将session信息同步到其它服务器,这样其它服务器也有session信息了,可以保持登录状态了。
缺点:同步服务器的速度很慢,可能等到下一次分发访问后还没同步完,而且一旦登录服务器宕机之后,整个系统都不能运行
四.通过NFS共享session
NFS(network file system)可以让不同的机器,不同的操作系统共享文件。准备一台NFS服务器,将所有生成的session信息写入到服务器中,每次用户访问的时候,都来这个服务器获取session信息,这样就能共享session信息了。
缺点:依赖性太强,如果NFS服务器宕机,就无法工作了,当然可以考虑设置集群。
五.使用memcache来同步session
memcache是一套分布式的高速缓存系统,memcache工作流程:当用户访问服务器时,首先从memcache中获取数据,如果获取不到就从数据库中获取数据,并把数据同步到memcache中,第二次访问的时候就能从memcache中获取数据了。
因此无论什么服务器生成的session信息保存在memcache中,就可以共享sessionid了
优缺点:这种方式同步session,不会增加数据库的负担,而且比cookie安全的多,放在内存中,读取速度也比较快
缺点:memcache中数据是用内存块的形式保存,不能完全利用内存,会产生内存碎片。而且memcache只存在内存中,一旦服务器停止运行,数据就丢失了,
六.通过redis共享session

redis共享session和memcache一样,都是将数据保存在内存中,区别是redis会周期性的把更新的数据写入到磁盘中或者把修改的操作追加到日志文件中,并且可以在此基础上实现主从

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!