@Override
    public void updateBrokerTopicConfigMap(long newBrokerMetaConfId,
            int newConfCheckSumId,
            String newBrokerDefMetaConfInfo,
            List<String> newTopicMetaConfInfoLst,
            boolean isForce,
            final StringBuilder sb) {
        if ((!isForce)
                && (this.brokerMetadataConfId == newBrokerMetaConfId)
                && (this.brokerConfCheckSumId == newConfCheckSumId)) {
            logger.info(sb
                    .append("[Metadata Manage] Broker topic configure is equal, not update! curBrokerConfId is ")
                    .append(this.brokerMetadataConfId).append("received newBrokerMetaConfId is ")
                    .append(newBrokerMetaConfId).toString());
            sb.delete(0, sb.length());
            return;
        }
        if (TStringUtils.isBlank(newBrokerDefMetaConfInfo)) {
            logger.error("[Metadata Manage] received broker default configure is Blank, not update");
            return;
        }
        this.brokerDefMetadata = new BrokerDefMetadata(newBrokerDefMetaConfInfo);
        this.brokerDefMetaConfInfo = newBrokerDefMetaConfInfo;
        this.brokerMetadataConfId = newBrokerMetaConfId;
        this.brokerConfCheckSumId = newConfCheckSumId;
        if (newTopicMetaConfInfoLst == null || newTopicMetaConfInfoLst.isEmpty()) {
            logger.error("[Metadata Manage] received broker topic info is Blank, not update");
            return;
        }
        List<String> newTopics = new ArrayList<>();
        Map<String/* topic */, Integer> tmpInvalidTopicMap =
                new ConcurrentHashMap<>();
        ConcurrentHashMap<String/* topic */, TopicMetadata> newTopicConfigMap =
                new ConcurrentHashMap<>();
        for (String strTopicConfInfo : newTopicMetaConfInfoLst) {
            if (TStringUtils.isBlank(strTopicConfInfo)) {
                continue;
            }
            TopicMetadata topicMetadata = new TopicMetadata(brokerDefMetadata, strTopicConfInfo);
            if (!topicMetadata.isValidTopic()) {
                tmpInvalidTopicMap.put(topicMetadata.getTopic(),
                        topicMetadata.getStatusId());
            }
            newTopics.add(topicMetadata.getTopic());
            newTopicConfigMap.put(topicMetadata.getTopic(), topicMetadata);
        }
        // Check to-be-added configure, if history-offset topic is not included, append it
        addSysHisOffsetTopic(brokerDefMetadata, newTopics, newTopicConfigMap);
        this.topicMetaConfInfoLst = newTopicMetaConfInfoLst;
        this.closedTopicMap = tmpInvalidTopicMap;
        Collections.sort(newTopics);
        if (!newTopicConfigMap.equals(this.topicConfigMap)) {
            Map<String, TopicMetadata> oldTopicConfigMap = this.topicConfigMap;
            this.topics = newTopics;
            this.topicConfigMap = newTopicConfigMap;
            this.propertyChangeSupport
                    .firePropertyChange("topicConfigMap", oldTopicConfigMap, newTopicConfigMap);
        }
        this.propertyChangeSupport.firePropertyChange("unflushInterval", null, null);
    }
Update broker's metadata in memory, then fire these metadata take effect.
These params are got from Master Service.

@param newBrokerMetaConfId       the new broker meta configure id
@param newConfCheckSumId         the new configure checksum id
@param newBrokerDefMetaConfInfo  the new broker default meta configures
@param newTopicMetaConfInfoLst   the new topic meta configure list
@param isForce                   whether to force an update
@param sb                        string buffer
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/broker/metadata/BrokerMetadataManager.java