记一次请求暴增导致的线上问题

项目推广了一次直播秒杀活动,没有预估到请求量会这么大,出现了一次惨烈的线上事故

过程:

先是部分接口去查询数据库导致mysql出现压力,读写分离的从库经不住读的压力,cpu100%

数据库紧急扩容,增加从库,mysql压力降低

报错:org.springframework.jdbc.CannotGetJdbcConnectionException:Failed to obtain JDBC Connection

接着项目服务器访问量激增导致宕机

(1)报错java.io.IOException: Too many open files

https://www.cnblogs.com/kongzhongqijing/articles/3735664.html

https://blog.csdn.net/luckykapok918/article/details/76914834

(2)报错c.d.common.exception.RRExceptionHandler: java.io.IOException: Broken pipe

https://blog.csdn.net/NathanniuBee/article/details/101436205

https://blog.csdn.net/zqz_zqz/article/details/52235479

(3)Caused by: java.io.IOException: Server returned HTTP response code: 504 for URL

(4)Caused by: java.io.IOException: Server returned HTTP response code: 502 for URL:

紧急加了一些服务器后,服务器请求压力降低
 

但是走缓存的页面加载还是慢,查询redis指标,发现压力正常,个人猜测是mq长链接一直在消耗服务器资源,还是需要完善监控系统,方便后期排查问题

rabbitmq连接池爆满

报错:org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused

前期并发导致的遗留问题:rabbitmq生产了一些错误数据,自动应答导致错误消息一直重试,unack问题需要解决

后期rabbitmq代码需调整为手动应答

报错:org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException:Listener method 'public void com.daoism.app.mq.component.BuyOrderReceiver.handle(java.lang.String)' threw exception

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值