2016-09-22 3 views
0

카프카의 소비자 그룹 개념을 이해하려고합니다.카프카, 소비자 그룹 및 주제 이해

모든 설명서는 소비자 그룹이 특정 주제 내에서 읽기를 병렬화하는 데 사용되는 것처럼 보입니다. 그러나 소비자가 여러 주제를 구독 할 수 있다는 것도 읽었습니다.

제 질문은 - 소비자 그룹과 주제 사이의 관계는 무엇입니까? 동일한 소비자 그룹에 속한 2 명의 다른 소비자가 다른 주제에서 읽을 수 있습니까?

답변

1

모든 설명서는 소비자 그룹이 특정 주제 내에서 읽기를 병렬 처리하는 것처럼 보입니다. 그러나 나는 또한 소비자가 여러 주제를 구독 할 수 있음을 읽었습니다.

예 및 예.

카프카는 모든 게시 된 메시지를 모든 소비자 그룹에 보내지 만 각 그룹에는 오직 한 명의 소비자 만 보냅니다. 모든 메시지가 정확하게 하나의 소비자에 의해 수신/처리되는 것과 같은 큐 동작을 원한다면 주제 당 하나의 소비자 그룹을 사용하십시오. 모든 소비자가 모든 메시지의 사본 하나를 가져 오는 게시/하위 동작을 원할 경우 모든 소비자는 고유 한 소비자 그룹을 사용해야합니다.

제 질문은 - 소비자 그룹 과 주제 사이의 관계는 무엇입니까? 동일한 소비자에 속하는 2 명의 다른 소비자가 서로 다른 주제에서 그룹 을 읽을 수 있습니까?

생각하는 것이 가장 좋습니다. 대기열 동작을 원하십니까 (1 msg -> 1 및 한 명의 소비자)? 또는 pub-sub behavior (1 msg -> 모든 소비자)? 아니면이 둘의 하이브리드? 일단 그것을 선택했다면 소비자 그룹을 적절히 배치하십시오.

질문에 직접 대답하려면 : 일반적으로 원하는 방식으로 구성 할 수 있습니다. 그것을 생각하는 가장 논리적 인 방법은 각각의 주제가 N 개의 소비자 그룹을 가지고 있다는 것입니다. 서로 다른 주제에 대해 동일한 소비자 그룹 문자열을 사용할 수는 있지만 그 의미가 전혀 없다고 생각합니다.

+0

또한 소비자가 여러 주제에서 소비하는 경우 대부분 논리적으로 개별 소비자로보고 레이블을 지정합니다. 이들은 동일한 프로세스 공간에서 실행될 수 있지만 카프카 관점에서 보면 일반적으로 별도의 소비자입니다. 예외는 카프카 소비자가 여러 입력 주제의 메시지에 합류하거나 병합하는 경우입니다. 당신은 논리적으로 그 한 소비자를 고려할 것입니다. – clay

관련 문제