public void shutdown() throws Throwable {
        StringBuilder strBuff = new StringBuilder(512);
        logger.info("[ShutDown Producer] Shutting down heartbeat...");
        if (this.nodeStatus.get() != 0) {
            if (isShutdown()) {
                logger.info(strBuff
                        .append("[ShutDown Producer] Producer ").append(producerId)
                        .append("has been shutdown,please do not make a duplicated invocation.").toString());
                strBuff.delete(0, strBuff.length());
            }
            return;
        }
        clientStatsInfo.selfPrintStatsInfo(true, true, strBuff);
        if (this.nodeStatus.compareAndSet(0, 1)) {
            this.heartbeatService.shutdownNow();
            this.topicPartitionMap.clear();
            masterService.producerCloseClientP2M(createCloseProducerRequest(),
                    AddressUtils.getLocalAddress(), tubeClientConfig.isTlsEnable());
            logger.info("[SHUTDOWN_TUBE] tube heartbeat was shutdown.");
        }
    }
Shutdown the produce manager.

@throws Throwable   the exception at shutdown
inlong-tubemq/tubemq-client/src/main/java/org/apache/inlong/tubemq/client/producer/ProducerManager.java