登录session改造,缓存redis后,如果redis崩了怎么办?
来源:6-15 单点登录之SessionExpireFilter重置Session有效期
生活没有bool型
2018-06-21
因为现在自己公司的项目中用的是一致性哈希算法,保证同一个用户的会话能分配到同一台服务器上,所以一直没有仔细考虑过session共享问题。
看完课程中关于登录改造的部分,现在我的疑问是,如果多台服务器的用户登录信息放在一台redis上,那这台redis无法正常工作的情况下,所有服务器就都无法正常登录了,这不是违背了分布式的本意么?
当然我也想到可以做分布式redis,但是举一个具体的例子,假设我现在有8台服务器,他们都把登录信息存在一台redis上,那么这台redis无法正常工作了,这8台服务器就都不能正常登录了。所以为了避免这种情况,我可以加redis(缓存共享就又是另一个头疼的问题了),这里假设redis出异常的概率和服务器一样,那么我redis的台数少于8,都会降低系统的可用性啊。所以生产环境中到底是怎么考虑这个问题的?
因为冲着实战来的,所以除了学习架构知识外,还是想多了解一些实际生产中的解决方案,麻烦老师能指点一下
写回答
2回答
-
赵梨花
2018-08-05
建立redis集群就可以了,redis有一套原生的sentinel哨兵机制可以用
00 -
还是不会coding
2018-06-22
呃。。。没有完全理解你的意思。要是考虑高可用的话,可以考虑做redis主备,而且redis性能没那么差吧,8台服务器而已,如果redis读写没那么恐怖的话,一个主备就足够支撑了吧(哈哈,没有数据支撑,纯属胡说)。另外真的访问量特别大的话,应该还可以考虑接入mq,坐等Geely大牛权威解答。
022018-06-25
相似问题