혹시 카프카에서 메시지의 파티션 할당에 대한 개념에 대해 도움을 구할 수 있을까요? 프로듀서 내 파티셔너의 역할이 ISR의 리더 파티션을 찾아서 메시지를 전달하는 것으로 알고 있습니다. 다시 말해서 프로듀서의 파티셔너는 메시지를 전송할 때, 여러 카프카 브로커에 존재하는 파티션 중에서도 리더 파티션에게만 전송하는 걸로 알고 있습니다. 그런데 메시지의 파티션 할당에 대한 개념을 보면, 메시지의 키의 유무에 따라 해시 방식과 라운드 로빈 방식에 따라서 여러 파티션에 메시지를 균등하게 할당한다고 하네요. 위의 두 개념이 충돌합니다. 프로듀서에서 메시지를 리더 파티션에만 전달한다면, 해시 기반이나 라운드 로빈 방식으로 메시지를 균등하게 배분할 필요가 없지 않을까요?
안녕하세요. 원영님의 유튜브 강의를 정주행하면서 kafka를 접하고 있는 초보입니다. 서울 데이터와 울산 데이터가 구분되어야 한다면 토픽을 분리하는 것도 방법이 될 것 같다는 생각이 들었는데, 커스텀 파티셔너를 만드는 것과 토픽을 분리하는 것 중에 상황에 따라 선택할 수 있다고 생각하면 좋을까요?!
안녕하세요 데이터 엔지니어에 흥미가 생겨 알아보고 있는 비전공자입니다 최종적으로 하고싶은 일은 엔지니어 쪽인데 신입을 거의 뽑지 않는 것 같더라고요 그래서 현재 그리는 방향은 개발자로 시작한 뒤 추후 전직하는 방향으로 생각하고 있는데 어쨌든 이 분야 자체가 갖고 있는 지식이나 기술이 많을수록 좋은 것 같아서요.. 현업에 계신 분에게 조언을 구해보고자 이렇게 글 남겨 봅니다! 첫 공부 시작의 방향성을 어떻게 가져가면 좋을까요? 지금 생각하고 있는 건 자바를 이용해서 풀스택이나 백엔드로 시작하는 걸 고민 중입니다..! 몇 마디 피드백이라도 부탁드려요!
안녕하세요. 개발자로 백엔드를 시작하시고 차차 전직하시는 방법도 좋은 방법입니다. 이미 많은 부분에서 백엔드가 데이터와 융합해서 개발하는 경우가 많기 때문입니다. 그렇기 때문에 백엔드 개발자로 시작하시고 차차 데이터 플랫폼에 익숙해지면서 데이터 엔지니어로 경력을 쌓는 것도 좋다고 생각되네요^^
선생님 질문 있습니다. 카프카 프로듀서에서 메시지 전송 시, 기본적으로 라운드로빈 방식으로 하나의 파티션을 선택하여 전송하는 것으로 알고 있습니다. 이 때 해당 파티션 내 리더와 팔로우 간 동기화가 일어나는 것은 대략적으로 알겠는데,,,, (1) 파티션과 파티션 간 동기화는 어떻게 일어나는지 모르겠습니다. 관련 설정도 안보이는 것 같고~ 대략적인 설명 또는 참조 문서 공유 부탁드립니다. (2) 파티션 생성 시, replication factor 개수는 단순 백업 개수라고 생각했는데, 혹 이것이 성능적인 측면에서도 영향이 있는지 궁금합니다.
(1) 리더, 팔로워 파티션간 동기화는 팔로워 파티션이 리더 파티션을 바라보고 복제를 수행합니다. 자세한 내용은 kafka.apache.org/documentation/#replication 를 참고하세요. (2) 프로듀서의 acks옵션에 따라 성능적인 면에 영향이 있을 수 있습니다!
@@DevWonYoung 선생님~ 바쁘신 와중에 답변 주셔서 감사합니다!!! 그런데 질문의 요지가 살짝 다르게 전달된 감이 있습니다. 첫번째 질문에서 리더와 팔로워 간의 동기화는 레플리케이션 간의 동기화라고 생각하고 있고, 제가 질문 드렸던 부분은 파티션간의 동기화에 관한 것이었습니다. 예를 들어 3개의 브로커로 구성된 클러스터에 3개의 파티션, 2개의 레플리케이션으로 구성된 토픽이 생성되어 있다고 가정했을 때, 3개의 파티션간에도 동기화가 일어 나는 것인지? 어떻게 처리되는지? 궁금하여 여쭈어 보았습니다. 두번째 답변에서, ack에 따라 성능에 영향이 있을 수 있다는 설명 이해했구요, 원래 질문은 레플리케이션 개수를 늘리는 것이 성능적인 면에서도 영향이 있는지 궁금해서 여쭈어본 것입니다. 간략하게 설명 부탁드립니다.
좋은 정보 감사합니다!
좋은 강의 감사드립니다~!
RDB에서 데이터 성격에 따라 파티셔닝해서 사용하는데, 카프카에도 커스텀 파티셔너로 적용 가능하군요. 항상 영상 잘 보고 있습니다~!
이해하기 쉽게 설명해주셔서 감사합니다!
!감사합니다
혹시 카프카에서 메시지의 파티션 할당에 대한 개념에 대해 도움을 구할 수 있을까요?
프로듀서 내 파티셔너의 역할이 ISR의 리더 파티션을 찾아서 메시지를 전달하는 것으로 알고 있습니다. 다시 말해서 프로듀서의 파티셔너는 메시지를 전송할 때, 여러 카프카 브로커에 존재하는 파티션 중에서도 리더 파티션에게만 전송하는 걸로 알고 있습니다.
그런데 메시지의 파티션 할당에 대한 개념을 보면, 메시지의 키의 유무에 따라 해시 방식과 라운드 로빈 방식에 따라서 여러 파티션에 메시지를 균등하게 할당한다고 하네요.
위의 두 개념이 충돌합니다. 프로듀서에서 메시지를 리더 파티션에만 전달한다면, 해시 기반이나 라운드 로빈 방식으로 메시지를 균등하게 배분할 필요가 없지 않을까요?
메시지 키를 넣으면 해시 기반으로 특정 파티션에만 데이터가 전달됩니다. 반면 메시지 키를 넣지 않으면 라운드 로빈 방식으로 모든 파티션에 균등하게 데이터가 전달됩니다. 그러므로 메시지 키 사용여부에 따라 달라지다고 볼 수 있습니다~
화이팅
감사합니닷
잘보고있습니다.질문이 있는데요.예시에서 울산과 서울이 같은파티션에 들어가게되는데 그러면 서울데이터와 울산데이터가 섞이게 되는데 문제가 없나요?
안녕하세요~ 울산과 서울이 같은 파티션에 들어가더라도 순서가 바뀌는것은 아니기 때문에 순서에 대한 문제는 없습니다. 만약 한개 파티션에 단 한개의 메시지 키를 가진 데이터만 들어가야한다면 커스텀 파티셔너를 만드시는 것이 방법일 수 있겠습니다!
안녕하세요. 원영님의 유튜브 강의를 정주행하면서 kafka를 접하고 있는 초보입니다. 서울 데이터와 울산 데이터가 구분되어야 한다면 토픽을 분리하는 것도 방법이 될 것 같다는 생각이 들었는데, 커스텀 파티셔너를 만드는 것과 토픽을 분리하는 것 중에 상황에 따라 선택할 수 있다고 생각하면 좋을까요?!
안녕하세요 데이터 엔지니어에 흥미가 생겨 알아보고 있는 비전공자입니다
최종적으로 하고싶은 일은 엔지니어 쪽인데 신입을 거의 뽑지 않는 것 같더라고요
그래서 현재 그리는 방향은 개발자로 시작한 뒤 추후 전직하는 방향으로 생각하고 있는데
어쨌든 이 분야 자체가 갖고 있는 지식이나 기술이 많을수록 좋은 것 같아서요..
현업에 계신 분에게 조언을 구해보고자 이렇게 글 남겨 봅니다! 첫 공부 시작의 방향성을 어떻게 가져가면 좋을까요? 지금 생각하고 있는 건
자바를 이용해서 풀스택이나 백엔드로 시작하는 걸 고민 중입니다..! 몇 마디 피드백이라도 부탁드려요!
안녕하세요. 개발자로 백엔드를 시작하시고 차차 전직하시는 방법도 좋은 방법입니다. 이미 많은 부분에서 백엔드가 데이터와 융합해서 개발하는 경우가 많기 때문입니다. 그렇기 때문에 백엔드 개발자로 시작하시고 차차 데이터 플랫폼에 익숙해지면서 데이터 엔지니어로 경력을 쌓는 것도 좋다고 생각되네요^^
선생님 질문 있습니다. 카프카 프로듀서에서 메시지 전송 시, 기본적으로 라운드로빈 방식으로 하나의 파티션을 선택하여 전송하는 것으로 알고 있습니다. 이 때 해당 파티션 내 리더와 팔로우 간 동기화가 일어나는 것은 대략적으로 알겠는데,,,,
(1) 파티션과 파티션 간 동기화는 어떻게 일어나는지 모르겠습니다. 관련 설정도 안보이는 것 같고~ 대략적인 설명 또는 참조 문서 공유 부탁드립니다.
(2) 파티션 생성 시, replication factor 개수는 단순 백업 개수라고 생각했는데, 혹 이것이 성능적인 측면에서도 영향이 있는지 궁금합니다.
(1) 리더, 팔로워 파티션간 동기화는 팔로워 파티션이 리더 파티션을 바라보고 복제를 수행합니다. 자세한 내용은 kafka.apache.org/documentation/#replication 를 참고하세요.
(2) 프로듀서의 acks옵션에 따라 성능적인 면에 영향이 있을 수 있습니다!
@@DevWonYoung 선생님~ 바쁘신 와중에 답변 주셔서 감사합니다!!! 그런데 질문의 요지가 살짝 다르게 전달된 감이 있습니다.
첫번째 질문에서 리더와 팔로워 간의 동기화는 레플리케이션 간의 동기화라고 생각하고 있고, 제가 질문 드렸던 부분은 파티션간의 동기화에 관한 것이었습니다. 예를 들어 3개의 브로커로 구성된 클러스터에 3개의 파티션, 2개의 레플리케이션으로 구성된 토픽이 생성되어 있다고 가정했을 때, 3개의 파티션간에도 동기화가 일어 나는 것인지? 어떻게 처리되는지? 궁금하여 여쭈어 보았습니다.
두번째 답변에서, ack에 따라 성능에 영향이 있을 수 있다는 설명 이해했구요, 원래 질문은 레플리케이션 개수를 늘리는 것이 성능적인 면에서도 영향이 있는지 궁금해서 여쭈어본 것입니다.
간략하게 설명 부탁드립니다.
동일한 번호의 토픽파티션 단위로 동기화가 일어납니다. 레플리케이션 개수를 늘리면 그만큼 브로커에 부하가 가게 되므로 성능면에서 영향이 생길 가능성은 있습니다!