@Override
    public boolean releaseBrokerRunInfo(int brokerId, String blockId, boolean isTimeout) {
        StringBuilder sBuffer = new StringBuilder(512);
        BrokerRunStatusInfo runStatusInfo =
                brokerRunSyncManageMap.get(brokerId);
        if (runStatusInfo == null) {
            logger.info(sBuffer.append("[Broker Release] brokerId=").append(brokerId)
                    .append(", isTimeout=").append(isTimeout)
                    .append(", release failure, run-info has deleted before!").toString());
            return false;
        }
        if (!blockId.equals(runStatusInfo.getCreateId())) {
            logger.info(sBuffer.append("[Broker Release] brokerId=").append(brokerId)
                    .append(", isTimeout=").append(isTimeout)
                    .append(", release failure, run-info has been replaced by new register!")
                    .toString());
            return false;
        }
        runStatusInfo = brokerRunSyncManageMap.remove(brokerId);
        if (runStatusInfo == null) {
            return false;
        }
        MasterSrvStatsHolder.decBrokerOnlineCnt(isTimeout);
        brokerTotalCount.decrementAndGet();
        brokerAbnHolder.removeBroker(brokerId);
        brokerPubSubInfo.rmvBrokerAllPushedInfo(brokerId);
        logger.info(sBuffer.append("[Broker Release] brokerId=").append(brokerId)
                .append(", isTimeout=").append(isTimeout)
                .append(", release success!").toString());
        return true;
    }
Constructor by TMaster

@param tMaster  the initial TMaster object
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/nodemanage/nodebroker/DefBrokerRunManager.java