短视频平台源码,利用mq限制入库并发数
短视频平台源码,利用mq限制入库并发数
- 利用mq做限流, 合理的入库时间
- 减轻数据库的压力
- 保证项目的稳定性
【生产场景】
多个用户同时excel导入数据, 采用多线程保存数据, 对数据库压力过大,
把数据直接放到mq里
/** * 监听核验身份队列 * * @param tag * @param msg * @param channel * @throws IOException */ @RabbitHandler @RabbitListener(queues = Constant.QueueName.CHECK_CARD_NO) public void receiverCardNo(@Header("amqp_deliveryTag") long tag, String msg, Channel channel) throws IOException { try { logger.info("核验身份队列:{},队列内容:{}", Constant.QueueName.CHECK_CARD_NO, msg); queueService.receiverCardNo(msg); } catch (Exception ex) { throw new CvsException(ResCode.FAIL_MQ_ERROR, ex); } finally { channel.basicAck(tag, false); } }
手动配置为35,同时启动35个线程处理入库操作,大小根据cpu数配置就可以
@RabbitListener(queues = Constant.QueueName.CHECK_CARD_NO, concurrency = “35”)
默认分支, 因该是2
@RabbitListener(queues = Constant.QueueName.CHECK_CARD_NO)
以上就是短视频平台源码,利用mq限制入库并发数, 更多内容欢迎关注之后的文章