public int getCurrentAllowedSize(final String storeKey,
            final FlowCtrlRuleHandler flowCtrlRuleHandler,
            final long currMaxDataOffset, int maxMsgTransferSize,
            boolean isEscFlowCtrl) {
        if (lastDataRdOffset >= 0) {
            long curDataDlt = currMaxDataOffset - lastDataRdOffset;
            long currTime = System.currentTimeMillis();
            recalcMsgLimitValue(curDataDlt,
                    currTime, maxMsgTransferSize, flowCtrlRuleHandler);
            if (isEscFlowCtrl
                    || (totalUnitSec > sentMsgSize
                            && this.curFlowCtrlVal.dataLtInSize > totalUnitMin)) {
                return this.sentUnit;
            } else {
                if (this.isSupportLimit) {
                    return -this.curFlowCtrlVal.freqLtInMs;
                } else {
                    return 0;
                }
            }
        } else {
            return this.sentUnit;
        }
    }
Query the current allowed maximum consumption size

@param storeKey              the store block key
@param flowCtrlRuleHandler   the flow-control rule handler
@param currMaxDataOffset     the current max data offset
@param maxMsgTransferSize    the max message transfer size
@param isEscFlowCtrl         whether need escape flow-control process
@return                      the allowed consumption size
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/broker/nodeinfo/ConsumerNodeInfo.java