etc Data Sources/Kafka
kafka 순서 보장
kafka 순서 보장
2023.05.10kafka는 한 파티션 내에서의 순서는 보장해준다. (단, max.in.flight.requests.per.connection=1 인 경우) 카프카 컨슈머 그러나 파티션이 여러 개 있을 때, 여러 파티션에 걸쳐 흩어진 item들 간의 순서는 보장 할 수 없다. 보내는 쪽에서 순차적으로 1, 2, 3 파티션에 프로듀스 한다고 해도, 받는 쪽에서 어떤 순서대로 파티션에 접근해서 데이터를 가져갈지 알 수 없기 때문이다. 순서 보장하는 법 A - 파티션 1개만 사용한다. ⇒ 완전한 의미의 순서 보장. 보낸 순서대로 받는다. ⇒ 분산처리 X ⇒ 처리량 ⬇ 순서 보장하는 법 B - 파티션키 + 파티션 내 순서보장 이용한다 이렇게 전체 파티션들을 아우르는 순서보장은 kafka의 병렬 처리 컨셉 상 불가능하지만 [파티..
카프카 컨슈머
카프카 컨슈머
2021.07.23컨슈머? 파티션 리더에게 메시지 가져오기 (Consume) 다른 메시지큐 처럼 소비하면 없어지나? ⇒ X 기본값 7일 동안 저장했다가 삭제 ⇒ 필요하다면 이미 가져온 데이터도 다시 가져올 수 있음 ⇒ 여러 컨슈머 그룹에서 메시지 수신 가능 컨슈머 중요 옵션 group.id 컨슈머 그룹 식별자 fetch 관련 fetch.min.bytes 한 번에 가져오는 데이터의 최소 사이즈. 지정한 사이즈 보다 작은 경우 요청에 응답하지 않고 데이터가 누적될 때 까지 기다림. (default 1byte) fetch.max.wait.ms 사이즈가 작아서 기다린다면 최대 몇 초 동안 기다릴건지? (default 500ms) max-wait 시간 지나면 쌓인 데이터가 min-bytes 보다 작아도 그냥 컨슈머로 보내기 때문에..