多web服务器集群的情况下,session如何同步?

在服务器集群环境中,session同步成为关键问题。本文探讨了三种方案:1) 每个服务器互相查询session数据,效率低下;2) 使用redis等内存数据库作为集中式session服务,适合对session丢失容忍度较高的场景;3) 存储session于永久数据库,如mysql,保证数据持久性但牺牲性能。这些策略在实际应用中需根据业务需求权衡。
摘要由CSDN通过智能技术生成

在我们一般菜鸟的开发任务中,一般都涉及到的是一些小项目的话只需要一台服务器而无需操心多服务器集群带来的种种的问题。

项目一大,必然会产生各种新的问题,如业务量过大挑战服务器的服务性能,要跟得上业务就必须得增加服务器性能,综合安全性、可靠性一般都会选择服务器集群这种方式。服务器集群的情况下,多台服务器需要联合共同协助工作,如何将多个服务器的职能分工、通过架构设计来有效并尽量高效地联合起来运行,是个大的问题,因为其中涉及到服务器的各种技术、各种程序,在高性能、高访问量、高负载的情况下,如何确保对于大量用户来说能够快速响应,这就需要多个服务器之间有效地连接并交换数据。

 


问题之一:多个服务器,session如何同步?

拿php编写页面的web服务器来说,php的$_SESSION[]中,对每个请求用户的session身份登记与对应的数据保存,都存储在服务器本机的运行内存当中,并不写文件,为了高效地运行。本身php是不提供对多服务器集群共享session等变量的能力的,所以我们需要自己想办法。

方案1:

为每个web服务器都建立一个网络服务,每个web服务器都可以互相查询获取对方服务器上当前内存中存储的session数据。当用户请求时,为了获取同步session,web服务器就需要请求其他每一个web服务器并更新本机session数据。这样做的弊端有很多,比如操作时的网络等待阻塞,这一点就导致这个方案很不高效了。pass。

方案2:

专门搞一个或一组服务器,它们的分工职责是代替php的$_SESSION[],提供一个网络级的用户session

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值