저는 아파치 카프카에서 시작하여 실제로 어떻게 사용할지 내 시스템을 어떻게 설계 할 수 있는지 알아 내려고합니다.아파치 카프카 메시지 발송 및 균형로드
저는 데이터를 처리하는 시스템을 구축하고 있습니다. 실제로 데이터의 청크는 처리해야 할 작업 (객체)입니다. 객체는 처리 방법을 알고 있으므로 문제가되지 않습니다.
내 시스템은 실제로 게시자 (작업 시작 코드), 전송 - 실제로 카프카 및 소비자 세트 - 실제로 대기열에서 데이터를 가져 와서 어떻게 든 처리하는 노동자입니다. 두 가지 계산이 필요하다면 소비자가 게시자가 될 수 있습니다 (소비자가 작업을 만들어 전송하기 만하면됩니다)
그래서 우리는 3 개의 서버가 있다고 생각할 수 있습니다. 루트 퍼블리셔 (카프카 서버도 거기에서 운영되고 있음)와 실제로 작업을 처리하는 2 개의 소비자 서버. 데이터 워크 플로는 다음과 같습니다. 게시자가 작업을 만들어 transposrt에 저장합니다. 소비자 중 한 명이이 작업을 대기열에서 가져 와서 처리합니다. 그리고 각 소비자가 다른 사람들과 동일한 양의 작업을 처리하면 (즉, 작업 부하가 소비자간에 균등하게 분산되는 경우) 좋을 것입니다.
이 경우 어떤 kafka 구성 패턴을 사용해야합니까? kafka는 메시지 밸런싱 기능을 가지고 있습니까? 아니면 2 개의 파티션을 생성해야하며 각 소비자는 단일 파티션에만 바인드되며이 파티션에서만 데이터를 소비 할 수 있습니까?
topicCount를 정의합니까? – gillyb
createMessageStreams 메소드에서 topic -> topicCount를 Map으로 지정하십시오. 예 :지도 (topic1 -> 10). http://kafka.apache.org/documentation.html#highlevelconsumerapi 링크를 참조하십시오. –