@Override
    public Map<String, OffsetHistoryInfo> getOfflineGroupOffsetInfo() {
        // get offline groups
        Map<String, Set<String>> totalGroups =
                this.fileOffsetStorage.queryGroupTopicInfo(null);
        Set<String> offlineGroups = new HashSet<>(totalGroups.keySet());
        offlineGroups.removeAll(this.cfmOffsetMap.keySet());
        // get offline history offset info
        OffsetHistoryInfo tmpInfo;
        Set<String> offlineGroups2 = new HashSet<>();
        Map<String, OffsetHistoryInfo> result = new HashMap<>();
        for (String group : offlineGroups) {
            tmpInfo = this.offlineGroupHisInfoMap.get(group);
            if (tmpInfo == null) {
                offlineGroups2.add(group);
                continue;
            }
            result.put(group, tmpInfo);
        }
        if (!offlineGroups2.isEmpty()) {
            Map<String, OffsetHistoryInfo> extResult =
                    this.fileOffsetStorage.getOffsetHistoryInfo(offlineGroups2);
            if (extResult.isEmpty()) {
                return result;
            }
            for (OffsetHistoryInfo historyInfo : extResult.values()) {
                tmpInfo = this.offlineGroupHisInfoMap.get(historyInfo.getGroupName());
                if (tmpInfo == null) {
                    tmpInfo = this.offlineGroupHisInfoMap.putIfAbsent(historyInfo.getGroupName(), historyInfo);
                    if (tmpInfo == null) {
                        tmpInfo = historyInfo;
                    }
                    result.put(historyInfo.getGroupName(), tmpInfo);
                }
            }
        }
        return result;
    }
Get unregistered groups' offset information

@return group offset info in zk
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/broker/offset/DefaultOffsetManager.java