老师,并发问题
来源:8-5 提高秒杀接口速度--astatus
qq_深都_03155654
2019-09-30
老师 如果现在有上万个用户同时请求登录操作,
1、也就是说有上万次sql通过用户名查询,数据库会崩么,也不可能把所有用户名都存redis缓存之类的吧,怎么处理呢
2、登录过程中,会提交事务,比如更新登录积分,更新登录有效期,或者其他,那是把事务这块的操作都通过消息队列处理呢,还是说可以在代码中同步执行?
主要问题: 当上万登录请求在不负载均衡情况下,既能数据库不崩,又能保证用户登录成功
写回答
1回答
-
首先,数据库不至于会崩溃,只是会拥挤出现拒绝连接和慢查询的异常情况。
然后,这里以登录举例,一秒钟有一万人登录,这个量级在大型互联网公司都不太容易出现的。
最后,方案上一是用缓存,可以在服务端对用户信息做缓存,另外就是把登录作为客户端缓存(不需要每次都登录,可能一天或者一星期才需要重新登陆一次);另外的方案就是对数据库做散列。
对于交互和体验要求高的请求不建议用队列,如果是对时间不敏感,可以用异步的方法,如果实在是性能做不到才考虑用异步的方法。
10
相似问题