private MessageProducer getProducer(String topic) throws TubeClientException {
        if (producerMap.containsKey(topic)) {
            return producerMap.get(topic);
        } else {
            synchronized (this) {
                if (!producerMap.containsKey(topic)) {
                    if (producer == null) {
                        producer = sessionFactory.createProducer();
                    }
                    // publish topic
                    producer.publish(topic);
                    producerMap.put(topic, producer);
                }
            }
            return producerMap.get(topic);
        }

    }
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