分布式环境Session处理方法
来源:互联网 发布:淘宝喵喵通信 编辑:程序博客网 时间:2024/04/25 20:26
最近做的一个项目中,操作的时候需要对手机号进行短信验证。
对短信验证的步骤:
一、获取验证码,把获取得到的验证码保存到该用户的session中
二、然后把该验证码以短信的方式发送到手机上。
三、用户在进行操作的时候,所要提交的表单中需要包含,要操作的信息和输入的验证码。
后台会把用户输入的验证码与session中的验证码进行对比,如果验证通过,则可以进行后续的操作。
在这个流程中,验证码存到session中,之后验证码的校验 是这个流程的关键。
我所做的项目是一个分布式的项目,所以存在session共享的问题。即发送短信的功能与要操作的功能没在同一个模块中。这样的话,如果session保存到发送短信模块的session中之后,后续操作的模块中并不能获取到session中的信息。
为了解决以上遇到的问题,需要处理的问题是,session如何在分布式环境上共享。
网上提供了三种常用的分布式环境,管理session的方案:
一、session复制
将一台机器上的Session数据以广播的形式发布到其余机器上
二、session绑定
指的是如果机器A有用户A的session信息,那么用户A在访问的时候,仍被分配到机器A上,(如上的例子,则需要单独去短信模块中进行验证)
三、Session集中式管理
这种方式,是建立一个单独的服务器,共同处理集群中的session信息。
权衡一下这几种方案,第一种方案中 每台机器上都存有大量的session信息,对网络的依赖较大。第二种方案中,session信息只存在指定的某台机器上,如果某台机器down掉之后,会有用户信息的丢失。
结合上面的几种优缺点。决定还是使用第三种方案,如果为了考虑可用性,可以建立多个服务器管理session。
最终采用的解决方案,用户获取验证码之后,把验证码保存到redis里面。然后用户在操作之后,把输入的验证码与存到session中的验证码对比,如果验证码正确则可以继续操作。
- 分布式环境Session处理方法
- 分布式环境Session处理问题
- 集群/分布式环境下,Session处理策略
- 集群/分布式环境下5种session处理策略
- 集群/分布式环境下5种session处理策略
- 集群/分布式环境下5种session处理策略
- 集群/分布式环境下5种session处理策略
- 集群、分布式环境下5种session处理策略
- 集群/分布式环境下5种session处理策略
- 集群/分布式环境下5种session处理策略
- 集群/分布式环境下5种session处理策略
- 集群/分布式环境下5种session处理策略
- 分布式session处理方案
- 分布式session处理方案
- 分布式session处理方案
- 分布式session处理方案
- 分布式session处理方案
- 分布式基础_集群、分布式环境下5种session处理策略
- 文件管理器和文件连接器
- 1089. Insert or Merge (25)【排序】——PAT (Advanced Level) Practise
- linux centos lamp开启GD库的支持
- "围观"设计模式(10)--创建型之原型模式(Prototype Pattern)
- 微信JS SDK PHP Demo
- 分布式环境Session处理方法
- 1090. Highest Price in Supply Chain (25)【树】——PAT (Advanced Level) Practise
- int与Integer的区别
- php &$
- bestcoder百度之星2016AK 1001&1002&1003&1004 题解
- Windows网络编程学习笔记(4) 编写一个TCP客户端
- HYSBZ 1036树的统计Count 树链剖分
- PHP中的可变参数函数和可选参数函数
- 1091. Acute Stroke (30)【搜索】——PAT (Advanced Level) Practise