为了账号安全,请及时绑定邮箱和手机立即绑定

假如数据库连接数只有1000,怎么处理100万的并发量呢?不能用负载均衡,有别的办法吗?

假如数据库连接数只有1000,怎么处理100万的并发量呢?不能用负载均衡,有别的办法吗?

PHP
偶然的你 2019-03-09 16:54:19
求大佬们给个思路,这是我上午的面试题。。。
查看完整描述

5 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

首先纠正你一下,负载均衡和你这个问题没有关系。其次是你这个问题也挺有意思的,因为这种场景很难出现。不过,我还是假装你真的遇到了这种极度不平衡的场景。
1.用好redis,将大量请求工具拦截在在redis层
2.引入连接池中间件。连接池和mysql是长连接,你不用担心频繁握手带来的性能问题。程序从连接池中取出一个链接句柄,用完后会迅速放回去。可以抵挡一阵儿。
除此以外,我也不知道还有什么银弹了

查看完整回答
反对 回复 2019-03-18
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

空间换时间,把常用的表都缓存到内存中.

查看完整回答
反对 回复 2019-03-18
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

数据库的话跟负载均衡真没关系。首先是消息队列,数据库主从架构。只是100万并发我觉得通常讲的是网络访问的事情而不是数据库连接数。100万并发不用负载均衡我还真不知道你单台服务器如何承受这访问量。即使是带宽调的足够大,我觉得用户体验也不会很高。

查看完整回答
反对 回复 2019-03-18
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

  1. 缓存,就可以不走数据库
  2. 消息队列,可以限制到数据库的数量,减缓压力
  3. 连接池管理,复用连接,等待管理。
  4. 数据库优化,读写优化,提升数据库的效率。
查看完整回答
反对 回复 2019-03-18
  • 5 回答
  • 0 关注
  • 811 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信