Study/Kafka

Spring Boot Kafka Producer 설정

hongeeii 2023. 12. 7.
728x90
반응형
/**
 * kafka producer config
 * 
 * @author shmin
 *
 */
@EnableKafka
@Configuration
public class KafkaProducerConfig {

    @Value(value = "${spring.kafka.bootstrap-servers}")
    public String bootstrapAddress;

    @Bean
    public ProducerFactory<String, String> senderProps() {
        Map<String, Object> props = new HashMap<>();
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
        // Kafka 브로커로 메시지를 보낼때 직렬화/역직렬화 방식
        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        props.put(ProducerConfig.RETRIES_CONFIG, 3); // 전송 실패시 재시도 횟수
        // ackmode
        // 0 : 자신이 보낸 메시지에 대해 카프카로부터 확인을 기다리지 않음
        // 1 : 자신이 보낸 메시지에 대해 카프카의 leader가 메시지를 받았는지 기다림, follower들은 확인하지 않음
        // all(-1) : 카프카의 leader와 follwer까지 받았는지 확인. 손실될 확률 거의 없음
//		props.put(ProducerConfig.ACKS_CONFIG, "all"); 
        return new DefaultKafkaProducerFactory<>(props);
    }

    @Bean
    public KafkaTemplate<String, String> kafkaTemplate() {
        return new KafkaTemplate<>(senderProps());
    }

}
728x90
반응형

'Study > Kafka' 카테고리의 다른 글

Spring Boot Kafka RebalanceListener 예시  (0) 2023.12.07
Spring Boot Kafka Consumer 전략  (0) 2023.12.07
springboot에서 kafka 연동  (2) 2023.12.07
Kafka Topic  (0) 2023.12.07
Kafka 고가용성(HA)의 핵심 - Broker, Replication, ISR  (2) 2023.11.30

추천 글