短影片平臺原始碼,利用mq限制入庫併發數

zhibo系統開發發表於2024-01-20

短影片平臺原始碼,利用mq限制入庫併發數

  1. 利用mq做限流, 合理的入庫時間
  2. 減輕資料庫的壓力
  3. 保證專案的穩定性

【生產場景】

多個使用者同時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限制入庫併發數, 更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69978258/viewspace-3004543/,如需轉載,請註明出處,否則將追究法律責任。

相關文章