[#3] 컨슈머를 제외한 나머지 애플리케이션 코드 마이그레이션 #4

Merged
pricelees merged 6 commits from feature/#3 into main 2025-06-27 05:20:07 +00:00
Showing only changes of commit fcc5fcffe6 - Show all commits

View File

@ -0,0 +1,39 @@
package com.sangdol.consumer.infrastructure.kafka.producer;
import java.util.Properties;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.retry.annotation.EnableRetry;
import com.sangdol.consumer.infrastructure.kafka.common.KafkaProperties;
import lombok.RequiredArgsConstructor;
@EnableRetry
@Configuration
@RequiredArgsConstructor
@EnableConfigurationProperties(value = KafkaProperties.class)
public class ProducerConfiguration {
@Bean(destroyMethod = "close")
public KafkaProducer<String, String> dltProducer(KafkaProperties kafkaProperties) {
return new KafkaProducer<>(producerProperties(kafkaProperties));
}
private Properties producerProperties(KafkaProperties properties) {
Properties props = new Properties();
KafkaProperties.Producer producer = properties.getProducer();
KafkaProperties.BootStrapServers bootStrapServers = properties.getBootStrapServers();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootStrapServers.getAddressByProtocol(producer.protocol()));
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, producer.keySerializer());
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, producer.valueSerializer());
props.put(ProducerConfig.ACKS_CONFIG, producer.acks());
props.put(ProducerConfig.LINGER_MS_CONFIG, producer.lingerMs());
return props;
}
}