0

현재 합류 3.0.1 플랫폼으로 작업 중입니다. 두 명의 다른 직원에게 2 개의 커넥터를 만들려고하지만 새로운 커넥터를 만들려고하면 새로운 그룹이 생성됩니다.Kafka-Connect : 분산 모드에서 새 커넥터를 만들면 새 그룹이 생성됩니다.

Two connectors were created using below details: 

1) POST http://devmetric.com:8083/connectors 

{ 
    "name": "connector1", 
    "config": { 
     "connector.class": "com.xxx.kafka.connect.sink.DeliverySinkConnector", 
     "tasks.max": "1", 
     "topics": "dev.ps_primary_delivery", 
     "elasticsearch.cluster.name": "ad_metrics_store", 
     "elasticsearch.hosts": "devkafka1.com:9300", 
     "elasticsearch.bulk.size": "100", 
     "tenants": "tenant1" 
    } 
} 

2) POST http://devkafka01.com:8083/connectors 

{ 
    "name": "connector2", 
    "config": { 
     "connector.class": "com.xxx.kafka.connect.sink.DeliverySinkConnector", 
     "tasks.max": "1", 
     "topics": "dev.ps_primary_delivery", 
     "elasticsearch.cluster.name": "ad_metrics_store", 
     "elasticsearch.hosts": "devkafka.com:9300", 
     "elasticsearch.bulk.size": "100", 
     "tenants": "tenant1" 
    } 
} 

그러나 둘 다 다른 그룹 ID로 생성되었습니다. 이 후 나는 기존 그룹에 대해 질문했다.

이 그룹들은 Kafka가 자동으로 연결하여 만들어 주므로 나에게주지 않았습니다. worker.properties에 다른 group.id를 부여했습니다. 하지만 두 커넥터가 같은 그룹에 속해 메시지를 공유하기 위해 병렬로 작업 할 수 있기를 바랬습니다. 현재 "dev.ps_primary_delivery"라는 주제에 대해 1 백만 개의 데이터를 보유하고 있으며 두 커넥터 모두 각각 0.5 백만 개를 확보하려고합니다.

어떻게하는지 알려주세요.

답변

6

나는 소비자 그룹을 참조하지 않는 worker.properties 파일에

  1. group.id ... 약간의 설명이 필요하다 생각합니다. "작업자 그룹"입니다. 동일한 작업자 그룹의 여러 작업자가 작업을 분할합니다. 따라서 동일한 커넥터에 많은 작업이있는 경우 (예 : JDBC 커넥터에 모든 테이블에 대한 작업이있는 경우) 해당 작업은 모든 작업 그룹에 할당됩니다 그룹의 노동자들.

  2. 싱크 커넥터에는 소비자 그룹의 일부인 소비자가 있습니다. 이 그룹의 group.id는 항상 "connect -"+ connector name입니다. 귀하의 경우 커넥터 이름을 기반으로 "connect-connector1"및 "connect-connector2"가 있습니다. 이것은 또한 두 커넥터가 같은 그룹에있을 수있는 유일한 방법은 같은 이름을 가진 경우입니다. 그러나 이름은 고유하므로 동일한 그룹에 두 개의 커넥터가있을 수 없습니다. 그 이유는 ...

  3. 커넥터는 실제로 이벤트 자체를 가져 오지 않으며, 단지 많은 작업을 시작합니다. 각 작업에는 커넥터 소비자 그룹의 일부인 소비자가 있으며 각 작업은 주제와 파티션의 하위 집합을 독립적으로 처리합니다. 따라서 동일한 그룹에 두 개의 커넥터가 있으면 기본적으로 모든 작업이 같은 그룹의 일부라는 것을 의미합니다. 그런데 왜 두 개의 커넥터가 필요합니까? 해당 커넥터에 대해 더 많은 항목과 작업을 구성하면 모든 설정이 완료됩니다.

유일한 예외는 사용중인 커넥터가 작업을 올바르게 사용하지 않거나 하나의 작업으로 제한하는 경우입니다. 그 경우에는 - 그들은 좋은 이유가 있거나 (더 많은 가능성이있는) 사람이 커넥터를 개선해야 할 필요가 있습니다 ...

+1

설명해 주셔서 감사합니다. Kafka 연결 코드를 통해 소비자 그룹과 작업자 그룹의 차이점을 확인할 수있었습니다. – Renukaradhya