@Override
        public void onMessageSent(final MessageSentResult result) {
            if (result.isSuccess()) {
                handleMessageSendSuccess(myEventStat);
                return;
            }

            MetricsManager.getInstance().addSendFailed(1);

            // handle sent error
            if (result.getErrCode() == TErrCodeConstants.FORBIDDEN) {
                logger.warn("Send message failed, error message: {}, resendQueue size: {}, event:{}",
                        result.getErrMsg(), resendQueue.size(),
                        myEventStat.getEvent().hashCode());

                return;
            }
            if (result.getErrCode() != TErrCodeConstants.SERVER_RECEIVE_OVERFLOW) {
                logger.warn("Send message failed, error message: {}, resendQueue size: {}, event:{}",
                        result.getErrMsg(), resendQueue.size(),
                        myEventStat.getEvent().hashCode());
            }
            myEventStat.incRetryCnt();
            resendEvent(myEventStat, true);

        }
Currently, all topics are published by the same producer. If needed, extend it to multi producers.

@param topic
@throws TubeClientException
inlong-audit/audit-proxy/src/main/java/org/apache/inlong/audit/sink/TubeSink.java