private List<InLongMessage> decodePB(
            ClientContext context,
            InLongTopic inLongTopic,
            byte[] msgBytes,
            Map<String, String> headers) throws IOException {
        int compressType = Integer.parseInt(headers.getOrDefault(COMPRESS_TYPE_KEY, "0"));
        String inlongGroupId = headers.getOrDefault(INLONG_GROUPID_KEY, "");
        String inlongStreamId = headers.getOrDefault(INLONG_STREAMID_KEY, "");
        switch (compressType) {
            case COMPRESS_TYPE_NONE: {
                return transformMessageObjs(context, inLongTopic, MessageObjs.parseFrom(msgBytes), inlongGroupId,
                        inlongStreamId);
            }
            case COMPRESS_TYPE_SNAPPY: {
                byte[] values = Utils.snappyDecompress(msgBytes, 0, msgBytes.length);
                return transformMessageObjs(context, inLongTopic, MessageObjs.parseFrom(values), inlongGroupId,
                        inlongStreamId);
            }
            case COMPRESS_TYPE_GZIP: {
                byte[] values = Utils.gzipDecompress(msgBytes, 0, msgBytes.length);
                return transformMessageObjs(context, inLongTopic, MessageObjs.parseFrom(values), inlongGroupId,
                        inlongStreamId);
            }
            default:
                throw new IllegalArgumentException("Unknown compress type:" + compressType);
        }
    }
uncompress and decode byte[]

@param msgBytes byte[]
@return {@link MessageObjs}
inlong-sdk/sort-sdk/src/main/java/org/apache/inlong/sdk/sort/impl/decode/MessageDeserializer.java