Middleware(23)
-
Kafka - 신뢰성 있는 카프카 애플리케이션을 만드는 3가지 방법(멱등성 프로듀서, 트랜잭션 컨슈머, 컨슈머 중복 적재)
1. 멱등성 프로듀서1.1. 중복 데이터 produce 문제 상황만약 네트워크에 이슈가 생겨서, Acknowledge 전송이 실패되면 중복으로 데이터를 produce할 수 있다.1.2. 멱등성 프로듀서 사용PID(Producer unique ID)를 같이 보내서 브로커에 메시지가 저장되어있음을 같이 저장해서 중복 메시지가 발행되면 토픽에 개시하지 않음. 아래는 실제 3.0 이상의 카프카 프로듀서 팩토리 코드인데, 디폴트로 true로 설정된 코드. 2. 트랜잭션 컨슈머 + 프로듀서컨슈머와 프로듀서를 하나의 트랜잭션으로 묶어서 처리하는 방식임. 특이하게 커밋을 Producer가 한다. 트랜잭션 컨슈머 + 프로듀서 구성으로 되어있고 그 프로듀서가 발행한 이벤트를 consume하는 컨슈머는 반드시isolati..
2024.06.18 -
Kafka - Spring kafka Producer, Consumer 예제 코드 및 오프셋 커밋, 에러 핸들링 설명
아래는 ContainerFactory 및 conusmer, producer 설정들이다. package com.spring.kafkasample.config import org.apache.kafka.clients.consumer.ConsumerConfig import org.apache.kafka.clients.producer.ProducerConfig import org.apache.kafka.common.serialization.StringDeserializer import org.apache.kafka.common.serialization.StringSerializer import org.springframework.context.annotation.Bean import org.springframe..
2023.11.18 -
spring kafka commit 실패시 next poll때 일어나는일
https://stackoverflow.com/questions/64681806/not-acknowledging-the-kafka-message-at-all-in-manual-immediate-mode Not acknowledging the kafka message at all in MANUAL_IMMEDIATE mode I could not find any documentation related to this issue, hence the question. What happens if @KafkaListener method does not call acknowledgement.acknowledge() at all when the ackModeis set to stackoverflow.com nack()..
2023.11.07 -
[Kafka] Parallel Consumers, 메시지별 병렬 처리
https://d2.naver.com/helloworld/7181840
2023.10.30 -
Spring cloud stream kafka - concurrency
spring.cloud.stream.bindings..consumer.concurrency 옵션과 관련해 설명한다. 아래 상황이 있다고 가정하자. 토픽 이름 : A-topic 파티션 개수 : 4 앱 인스턴스 개수 : 1(concurrency == 2) 보통은 위와 같이 설정을 하게 되면, 당연히 하나의 앱에서 2개는 동시 처리 하겠구나 생각을 하기 마련이지만 실제로는 그렇게 동작하지 않을 수 있다. 아래와 같이 컨슈머 그룹이 구성 되어 있다고 생각해보자 ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group a-topic-group --describe GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFF..
2022.07.27 -
RabbitMQ - 레빗엠큐 개념 및 동작방식, 실습
yoonyeoseong/rabbitmq-sample Contribute to yoonyeoseong/rabbitmq-sample development by creating an account on GitHub. github.com 오늘 포스팅할 내용은 래빗엠큐이다. 그 동안에는 카프카를 사용할 일이 많아 카프카에 대한 포스팅이 주였는데, 이번에 래빗엠큐를 사용할 일이 생겨 간단히 래빗엠큐에 대해 간단히 다루어 볼것이다.(예제 코드는 위 깃헙에 올려놓았습니다.) 비동기 작업에 있어 큐를 사용하려면 중간에 메시지 브로커라는 개념이 존재하는데, 이러한 메시지 브로커에는 RabbitMQ, Kafka 등이 대표적으로 있다. 해당 포스트에서는 표준 MQ프로토콜인 AMQP를 구현한 RabbitMQ(래빗엠큐)에 대해 ..
2020.07.26