in rocketmq-v5-client-spring-boot/src/main/java/org/apache/rocketmq/client/autoconfigure/RocketMQAutoConfiguration.java [75:94]
public ProducerBuilder producerBuilder(RocketMQProperties rocketMQProperties) {
RocketMQProperties.Producer rocketMQProducer = rocketMQProperties.getProducer();
log.info("Init Producer Args: " + rocketMQProducer);
String topic = rocketMQProducer.getTopic();
String endPoints = rocketMQProducer.getEndpoints();
Assert.hasText(endPoints, "[rocketmq.producer.endpoints] must not be null");
ClientConfiguration clientConfiguration = RocketMQUtil.createProducerClientConfiguration(rocketMQProducer);
final ClientServiceProvider provider = ClientServiceProvider.loadService();
ProducerBuilder producerBuilder;
producerBuilder = provider.newProducerBuilder()
.setClientConfiguration(clientConfiguration)
.setMaxAttempts(rocketMQProducer.getMaxAttempts());
if (StringUtils.hasLength(topic)) {
// Set the topic name(s), which is optional but recommended. It makes producer could prefetch the topic
// route before message publishing.
producerBuilder.setTopics(rocketMQProducer.getTopic());
}
log.info(String.format("a producer init on proxy %s", endPoints));
return producerBuilder;
}