采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
假如遇到紧急情况,原本只卖一万张票,而现在突然遇到战争模式,有一万人无法通过其他情况被转移,且刚好有时间有容量足够让两万人进入火车站离开,且火车出发方向远离战争方向,程序员如何调整系统让两万人同时持票进入(持票为凭证,保证多进入的人是无法被转移的一万人),并且出于社会责任义务,要在事后把车票钱退给这些避难者.
老哥,能麻烦您,告诉我这个面试官想问的核心问题是啥以及怎么解决吗。
redis与mysql的数据一致性 redis大量数据更新造成的并发错误
十分感谢老哥!!!
这个问题很有意思,我就从你的字面理解下,看对不对。
题目说:有容量足够,也就是火车是够的,比如我们春运,每年也是会加开列车的,所以火车的维护不用考虑,开放出这些车次就可以了。
题目还提到了要有凭证才能进入,这个就类似令牌,我们系统是有获取令牌才能购票的,可以在这个功能基础上做修改
刚才面试官又增加了条件 改为火车站容量足够 但是mysql数据库容量只有一万条 由于人群大量涌入 每秒会进入1800人 而车站允许承受五秒内最大人次为六千人 过了五秒后每秒最多不能超过八百人进入 不能让车站系统崩溃 数据库一旦超一万条就立即崩溃 留给你的时间只有三十秒种 后续要给避难者退票 必须要借助mysql数据库 且没有开启备用库 目前可以借助的第三方工具只有redis sentinel 已经处理好的lua程序脚本 该如何让应对此次危机(容纳量不能超标,避免非避难者进入,要求mysql数据库在给客户退费前有两万条避难者的正确数据)
只给了一个提示(高并发进行中mysql容量不够问题)
感觉面试官有点陷入知识的诅咒里,他心里有一套答案,所以提了各种条件,想让你回答出他想要的答案。但是我们光从这些条件,又不太理解他到底想听哪一块知识点。比如说:mysql数据库容量只有一万条,实际就不存在这种情况,他就想你回答他想听的,所以设计这个条件。 题目说容量只有一万条,最后又说要有两万条避难者的正确数据,这个就矛盾了。 我就说点我理解的吧,既然他说到用第三方工具redis sentinel,一般就是用sentinel限流800(每秒最多不能超过八百人进入),用redis可以做分布式锁,防止并发时数据库超过10000条(即不能超卖的场景,数据库存只有10000条)。
登录后可查看更多问答,登录/注册
最新版Spring3.0仿12306售票系统实战
1.1k 28
563 12
597 8
637 8
1.1k 7