유튜브 강좌라 대략적인 아웃트라인 수준일거라 생각하고, 별 기대없이 봤는데 완전 초득템했네요~^^ 사실 그 동안 카프카 제대로 파악해 볼려고, 여럿차례 온라인 자료들 번역까지 해가며, 살펴봐도 구체적이지 않아 혈압만 오르고, 시간 낭비에 스트레스만 쌓였는데, 이렇게 편안하게 설명해 주시니 너무 감사합니다. 꼭 반드시 복 받으실 겁니다!!! 다시 한 번 감사드립니다!!!
전 카프카를 책하고 카프카 사이트에 있는 레퍼런스 보고서 필요한 정보를 찾았는데요, 참고로 책은 고승범 님이 쓴 "카프카, 데이터 플랫폼의 최강자" (www.yes24.com/Product/Goods/59789254)가 좋았습니다. 이후에 나온 책은 읽어보지 못해서 어떤지 모릅니다.
send로 데이터를 전송할 때 buffer.memory 값을 초과할 경우 약 5초간의 delay 시간이 걸리던데, 혹시 해당 시간이 발생하는 이유와 시간을 줄일 수 있는 방법이 있나요? (delay는 close 또는 flush API를 호출했을 때 동일하게 발생하더라구요)
선생님 질문 있습니다. 카프카 프로듀서에서 메시지 전송 시, 기본적으로 라운드로빈 방식으로 하나의 파티션을 선택하여 전송하는 것으로 이해했습니다. 이 때 해당 파티션 내 리더와 팔로우 간 동기화가 일어나는 것은 대략적으로 알겠는데,,,, (1) 파티션과 파티션 간 동기화는 어떻게 일어나는지 모르겠습니다. 관련 설정도 없는 것 같고~ 대략적인 설명 또는 참조 문서 공유 부탁드립니다. (2) 파티션 생성 시, replication factor 개수는 단순 백업 개수라고 생각했는데요, 혹 이것이 성능적인 측면에서도 영향이 있는지 궁금합니다.
타피션 간에는 동기화를 하지 않습니다. 특정 토픽의 파티션이 3개일 경우 각 파티션은 서로 다른 데이터를 보관합니다. 그래서 파티션 수준에서만 순서를 보장하구요. 리플리카 개수가 성능과 데이터 안정성에 영향을 줄 수 있습니다. 영상에서 말씀드린 ack와 min.insync.replicas 값에 따라서 저장 처리량이 떨어질 수 있고, 데이터가 유실될 수도 있습니다.
안녕하세요. ru koo님. 답이 늦었네요. 말씀하신 내용이 맞습니다. 프로듀서가 사용하는 버퍼가 다 차면 (예를 들어 브로커에 보내는 속도보다 버퍼에 넣는 속도가 더 빠르면) 버퍼가 다 차게 되고, 이때 프로듀서는 max.block.ms 설정으로 지정한 시간 동안 메시지 전송 요청을 블로킹합니다. 이 시간을 초과하면 익셉션을 발생시키구요.
linger.ms는 프로듀서 입장에서의 설정입니다. 이 값을 지정하면 프로듀서가 전송할 때 지연 시간을 두어 데이터를 모아서 전송하게 되고, 이는 전송 효율(처리량)을 높일 수 있도록 합니다. 반면에 max.poll.interval.ms는 컨슈머 관리와 관련되어 있습니다. 컨슈머가 이 시간이 지나도록 poll을 수행하지 않으면 컨슈머에 이상이 있는 것으로 판단하고 해당 컨슈머를 컨슈머 그룹에서 빼고 파티션을 다른 컨슈머에 할당하는 거죠.
유튜브 강좌라 대략적인 아웃트라인 수준일거라 생각하고, 별 기대없이 봤는데 완전 초득템했네요~^^ 사실 그 동안 카프카 제대로 파악해 볼려고, 여럿차례 온라인 자료들 번역까지 해가며, 살펴봐도 구체적이지 않아 혈압만 오르고, 시간 낭비에 스트레스만 쌓였는데, 이렇게 편안하게 설명해 주시니 너무 감사합니다. 꼭 반드시 복 받으실 겁니다!!! 다시 한 번 감사드립니다!!!
전 카프카를 책하고 카프카 사이트에 있는 레퍼런스 보고서 필요한 정보를 찾았는데요, 참고로 책은 고승범 님이 쓴
"카프카, 데이터 플랫폼의 최강자" (www.yes24.com/Product/Goods/59789254)가 좋았습니다. 이후에 나온 책은 읽어보지 못해서 어떤지 모릅니다.
kafka 예제로만 하고 설렁설렁 사용하다가 이슈가 발생하여 자료찾다가 영상 잘 보고갑니다 도움이 많이되었습니다!!!!!!!
어떤 분이시길래..이렇게 설명도잘하시고..감사합니다.. 목소리도 너무좋으세요
아이고, 고맙습니다.
너무 잘 보고 갑니다 감사합니다.
고맙습니다. 영상 항상 잘보고 있습니다
감사합니다.~~
카프카 업무를 했어도 모르고 있던 것들이 많았네요
범균님 영상 너무 좋습니다..ㅎㅎ
고맙습니다
내용이 정말 알차네요. 감사합니다
send로 데이터를 전송할 때 buffer.memory 값을 초과할 경우 약 5초간의 delay 시간이 걸리던데, 혹시 해당 시간이 발생하는 이유와 시간을 줄일 수 있는 방법이 있나요? (delay는 close 또는 flush API를 호출했을 때 동일하게 발생하더라구요)
참고로 설정은 buffer.memory=기본값 (32MB), linger.ms=1000, batch.size=16384를 사용했고,
크기가 500Byte 인 데이터 8만개를 send 하게 될 경우 위의 현상이 발생합니다.
@김인호 님. 문서를 보니 서버에 전송하는 속도보다 더 빠르게 쌓이면 프로듀서는 max.block.ms 시간만큼 블로킹을 하네요. 500바이트*8만개는 32M를 넘기니까 buffer.memory 크기를 좀 더 늘리는 게 가장 쉬운 방법일 것 같습니다.
선생님 질문 있습니다. 카프카 프로듀서에서 메시지 전송 시, 기본적으로 라운드로빈 방식으로 하나의 파티션을 선택하여 전송하는 것으로 이해했습니다. 이 때 해당 파티션 내 리더와 팔로우 간 동기화가 일어나는 것은 대략적으로 알겠는데,,,,
(1) 파티션과 파티션 간 동기화는 어떻게 일어나는지 모르겠습니다. 관련 설정도 없는 것 같고~ 대략적인 설명 또는 참조 문서 공유 부탁드립니다.
(2) 파티션 생성 시, replication factor 개수는 단순 백업 개수라고 생각했는데요, 혹 이것이 성능적인 측면에서도 영향이 있는지 궁금합니다.
타피션 간에는 동기화를 하지 않습니다. 특정 토픽의 파티션이 3개일 경우 각 파티션은 서로 다른 데이터를 보관합니다. 그래서 파티션 수준에서만 순서를 보장하구요.
리플리카 개수가 성능과 데이터 안정성에 영향을 줄 수 있습니다. 영상에서 말씀드린 ack와 min.insync.replicas 값에 따라서 저장 처리량이 떨어질 수 있고, 데이터가 유실될 수도 있습니다.
@@madvirus 선생님 감사합니다!!! 👍
감사합니다
영상 정말 좋네요 1편부터 보고 있는데 그 외에도 도움이 될만한 영상들이 너무 많습니다. 보물선을 찾은 기분이네요 감사합니다 범균님
^^ 보물선이라니요~ 고맙습니다.
@@madvirus 좋은 영감을 받을만큼 좋은 채널인것 같습니다 혹시 따로 커뮤니티나 개발모임을 운영하시는게 있나요
코로나 전에는 동네에서 스터디 모임을 갖곤 했는데 코로나 이후로는 쉬고 있어요.
추 후 다시 진행할 계획이있으실까요?
@@Spring-k6d 당분간은 없긴 합니다.
영상잘봤습니다~! acks 옵션값이 ack로 오타가 난것 같습니다.
앗, 고맙습니다. 말씀하신 것처럼 옵션은 acks가 맞는데 자료에 ack로 작성했네요.
감사합니다 :)
탁 치고 갑니다
20221106 시청 완료
감사합니다!
🙂
프로듀서 버퍼가 차서 기다린 시간이 최대 대기 시간 초과라는게 ... 브로커에 전송이 안되서 버퍼에 쌓여있고 recode send하는 과정에서 blocking 제한 시간 초과를 의미하는건가요?
안녕하세요. ru koo님. 답이 늦었네요. 말씀하신 내용이 맞습니다. 프로듀서가 사용하는 버퍼가 다 차면 (예를 들어 브로커에 보내는 속도보다 버퍼에 넣는 속도가 더 빠르면) 버퍼가 다 차게 되고, 이때 프로듀서는 max.block.ms 설정으로 지정한 시간 동안 메시지 전송 요청을 블로킹합니다. 이 시간을 초과하면 익셉션을 발생시키구요.
영상 감사합니다! 혹시 poll.interval.ms 와 linger.ms 의 차이가 무엇인지 여쭤봐도 될까요??
linger.ms는 프로듀서 입장에서의 설정입니다. 이 값을 지정하면 프로듀서가 전송할 때 지연 시간을 두어 데이터를 모아서 전송하게 되고, 이는 전송 효율(처리량)을 높일 수 있도록 합니다.
반면에 max.poll.interval.ms는 컨슈머 관리와 관련되어 있습니다. 컨슈머가 이 시간이 지나도록 poll을 수행하지 않으면 컨슈머에 이상이 있는 것으로 판단하고 해당 컨슈머를 컨슈머 그룹에서 빼고 파티션을 다른 컨슈머에 할당하는 거죠.