전체 글
Kafka에서 정확한 한 번을 지원하는 방법
정확한 한 번을 지원하는 방법Kafka에서 메시지 보장 옵션은 3가지가 있습니다. 재밌는건 정확한 한 번 옵션 또한 분산 서버 환경에서는 정확한 한 번을 보장하지 못하며 다른 옵션들 또한 아래 사유로 정확한 한 번을 보장하지 못합니다.At-least-once semantics - ACK 응답이 안 올경우 한 번도 메시지를 더 발행At-most-once semantics - ack 응답이 안와서 retry자체를 안해서 메시지를 발행 안 할 수 있음Exactly-once semantics - 오프셋을 다시 읽는 경우정확한 한 번을 지원하기 위해서는 멱등성 프로듀서, 트랜잭션 API, 애플리케이션 레벨에서 중복 제거 총 3가지의 방법이 있습니다.각 방법마다 장단점이 존재하고 현재 프로젝트의 상황에 맞는 방법을..
10.Spring Batch의 Chunk와 ItemProcessor
CompositeItemProcessor기본개념ItemProcessor 들을 연결(Chaining)해서 위임하면 각 ItemProcessor 를 실행시킨다예를 들자면 3개의 ItemProcessor가 있고 각 ItemProcessor에 작업중인 객체를 전달해줘야 하는 상황이라 가정해보자1번 ItemProcessor는 문자열 전체를 대문자로 바꿔준다.2번 ItemProcessor는 UUID를 문자열에 더해준다.3번 ItemProcessor는 A를 B로 바꿔주는 ItemProcessor이다.이럴 경우 각 ItemProcessore는 작업중인 문자열을 반환해줘야한다. CompositeItemProcessor는 작업중인 객체를 전달하여 동작할 ItemProcessor를 chaining 형식으로 구성한다.이전 I..
9.Spring Batch의 Chunk와 ItemWriter
Flat Files - FlatFileItemWriter 개념 및 API 소개기본개념2차원 데이터(표)로 표현된 유형의 파일을 처리하는 ItemWriter고정 위치로 정의된 데이터 필드나 특수 문자에 의해 구별된 데이터의 행을 기록한다Resource 와 LineAggregator 두 가지가 요소가 필요하다구조LineAggregatorItem 을 받아서 String 으로 변환하여 리턴한다item은 객체를 의미한다.FieldExtractor를 사용해서 처리할 수 있다구현체총 3개의 PassThroughLineAggregator, DelimitedLineAggregator, FormatterLineAggregator 구현체가 있다.FieldExtractor전달 받은 Item 객체의 필드를 배열로 만들고 배열을..