카프카(Kafka) 컨슈머는 토픽(topic)에서 메시지를 읽는다. 갑작스럽게 종료되면 종료되기 전에 어딘가까지 읽었다는 위치(오프셋(offset))을 저장한다. 오프셋(offset)은 파티션에서 수신되는 각 메시지에 대해 계속 증가하는 정수 값인 메타 데이터 조각(piece)입니다. 각 메시지는 파티션에 고유한 오프셋 값을 갖는다.


카프카의 각 메시지는 고유한 오프셋을 갖고 오프셋은 특정 파티션에서 해당 메시지의 위치를 나타낸다.


컨슈머가 파티션에서 메시지를 읽으면 카프카는 마지막으로 사용한 메시지의 오프셋을 알 수 있다. 카프카 오프셋은 _consumer_offsets라는 토픽에 저장되며 컨슈머는 컨슘 메시지를 잊지 않고 중지한 부분부터 재시작할 수 있다.


어떻게 디폴트로 저장되는지 보려면 다음 값을 확인할 수 있다. 


enable.auto.commit  (기본값은 true)

auto.commit.interval.ms (기본값은 5000)

 

즉 컨슈머는 기본적으로 매 5초마다 카프카(Kafka)에 오프셋을 자동 커밋(commit)하거나 지정 토픽에서 데이터를 가져올 때마다 최신 오프셋을 커밋한다



만약 중복 처리를 최대한 하고 싶지 않다면 메시지의 오프셋을 수동으로 커밋(commit)한다. 


그리고 enable.auto.commit 속성의 값을 false로 변경해야 한다.


(자연스럽게 auto.commit.interval.ms 값은 무시된다.)


 


Posted by '김용환'
,



구글 드라이브 용량이 부족하거든.. (용량 부족하면 이메일도 가지 않는다)


필요없는 첨부파일 메일, 


용량 큰 중복 파일이 있는지 확인하고 지우고..


아래  URL에 접속해서 애매하게 남아있는 데이터를 지워야 한다.


https://drive.google.com/drive/search?q=is:unorganized%20owner:me



Posted by '김용환'
,


pull requst할 때 자주 발생할 수 있는 것으로


원격 리모트의 새로운 브랜치가 추가되었고 이를 기반으로 pull request를 하려고 그냥 브랜치를 받고 pr하면 history가 꼬인다.


따라서 pr할 원격 리모트와 연결한 후 git checkout 받고 자신의 저장소에 push한다.


$ git checkout -b dev real/dev

$ git push origin dev





상황에 따라 upstream을 수동으로 연동해야 할 수도 있다.


$ git branch --set-upstream-to origin/dev

Posted by '김용환'
,