kafka 커넥터를 탄력적으로 테스트 중이므로 실행중인 작업자를 죽여서 커넥터 인스턴스를 종료하고 싶습니다. 가장 쉬운 방법은 분산 모드가 둘 이상의 노드에서 실행되도록 강제하는 것입니다. 그런 다음 해당 노드에서 작업자 프로세스를 종료하면됩니다. 카프카가 시작한 노드 이상에서 카프카를 어떻게 연결시킬 수 있습니까? 이것은 worker config에 정의 된 것입니까?kafka를 여러 노드에서 분산 모드로 연결
1
A
답변
1
예, 처리 실패 및 자동으로 작업량 다시 시작은 Kafka Connect가 수행 할 수있는 작업과 동일합니다. 클러스터 (일반적으로 노드 당 하나의 작업자)로 실행합니다. 각 작업자는 하나 이상의 작업을 실행하며 Connect에 의해 관리됩니다. 작업자가 사망하면 실행중인 모든 작업이 부하 분산 방식으로 다른 사용 가능한 작업자에서 다시 시작됩니다. 자세한 내용은 architecture reference을 확인하십시오.
클러스터 내에 작업자를 정의하려면 동일한 group.id
을 할당하십시오. 자세한 내용은 config docs을 참조하십시오. 내가 무슨 짓을했는지 그래서 결국
0
했다 : 나는 내가 원하는 두 노드에 카프카 연결 분산 모드에 필요한
- 복사 모든 단지가 HDP는 2.5.3에서 당신 만 얻을 (그것을 실행 jar 파일).
- 두 노드 모두에서 내 jar를 가리키는 특성 파일로 시작 스크립트를 실행했습니다.
- REST 인터페이스를 사용하여 커넥터에 작업을 게시하고 한 명의 작업자가 커넥터 인스턴스를 갖고 있고 다른 작업자가 해당 작업을 수행하고 있음을 알 수있었습니다.
- (
ps -ef | grep connect
을 사용하여) 작업 작업자 노드를 제거하고 나머지 노드에서 다시 생성 된 것을 보았습니다. - 테스트를 재설정하고 커넥터 인스턴스 노드를 강제 종료하려고 시도했지만 다른 노드에서 커넥터 인스턴스가 재시작되었습니다.
내 탄력성 테스트를 요약하면 카프카 커넥트는 두더지를 치는 것처럼 보입니다. 그들이있는 곳 어디에서나 작업이나 커넥터를 죽일 수 있습니다. 그러면 다른 곳에서 다시 생성됩니다.
감사합니다. 내가 분산 모드에서 연결의 예상 동작을 알고, 나는 두 가지를 요구하고있다; 작업자가 다른 노드에 배포되도록하는 방법 및 노드를 강제 종료하는 방법에 대해 설명합니다. –
_workers_를 배포하는 방법은 당신에게 달려 있으며, Connect 설치의 일부입니다 (단지'group.id'를 설정했는지 확인하십시오). Kafka Connect가 자동으로 배포하는 _task_이며 실제로 작업을 실행합니다 (소스/푸시에서 타겟으로 가져 오기). 따라서 문제가되는 시나리오에 따라 작업자 (0, 1 또는 많은 작업 포함)가 사망하거나 단일 작업이 발생합니다. JVM 프로세스를 죽여 죽어가는 작업자를 시뮬레이트합니다. 개별 작업을 죽이려면 가능한지 확실하지 않습니다. –