2016-09-21 2 views
0

내가 에 의해 USER_ID 모딩에 의해 사용자 이벤트의 N 파티션을 만들 증가 할 때 이벤트의 순서를 유지하는 방법 N 때문에 이벤트가 순서대로 소비자가 순서대로 처리 할 수 ​​있습니다 그들은 전송 된.카프카 파티션

내가 N 각각 파티션 소비자의 수를 증가로드를 처리하고 원하는 것만으로는 충분하지 않습니다 결정하는 경우, 내가 무엇을 사용자 이벤트를 소비 할 때 이벤트가 순서 유지하기 위해 어떻게해야합니까?

+0

나는 이것이 그것에 대답하는 것 같아요 http://stackoverflow.com/questions/33677871/is-it-possible-to-add-partitions-to-an-existing-topic-in-kafka-0-8- 2 – yaswanth

답변

0

글쎄, 증가 된 파티션 수를 가진 새로운 토픽을 만든 다음 모든 토픽을 새로운 토픽으로 복사 할 수 있습니다. 그렇게하면 주문을 유지 관리 할 수 ​​있습니다 (주어진 user_id와 관련하여 어쨌든 원래 구성표의 다른 user_id에 대한 주문에 대한 약속은 없습니다).

물론 다운 타임이 필요할 수 있습니다. 해싱 계산을 변경하고 주어진 user_id가 여러 파티션으로 분할되어 (따라서 순서가 손실되는) 이벤트가 발생하기 때문에 파티션 수를 늘리는 단순한 솔루션은 효과가 없습니다. 파티션 수를 늘리는 것이 어려울 때 처음 주제를 만들 때 파티션 수에 대해 열심히 생각하고 싶은 이유 중 하나입니다.

+0

저는 카프카가 처음입니다 .1) 새로운 주제로 이벤트를 복사 할 수있는 도구가 있습니까? 2) *** 읽지 않은 *** 메시지 만 이동하고 읽은 메시지를 무시할 수 있습니까? – Glide

+0

1) MirrorMaker가 있습니다. https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27846330 2) 소비자 오프셋을 인식하는 복사기를 쓰지 않아도됩니다. 이것이 소비자의 오프셋을 인식하는 유일한 방법입니다. "독서". 비록 당신이 여러 소비자 그룹을 가지고 있지만 "읽기"의 개념은 복잡해집니다. – Aurand

관련 문제