2017-12-05 7 views
0

두 개의 kafka 스트림 응용 프로그램을 각각 다른 JVM 인스턴스에 별도로 실행하면 제대로 작동합니다. 동일한 JVM 인스턴스에서 응용 프로그램을 실행하면 두 번째 응용 프로그램이 작동하지 않습니다 (데이터를 사용하거나 생성하지 않음). 동일한 JVM 인스턴스에서 두 개의 개별 앱을 실행하는 데 제한이 있습니까? 카프카 소비자에게도 이런 일이 발생합니까?KafkaStreams applications

답변

0

복수 KafkaStreams 인스턴스를 동일한 JVM에 넣어야합니다. 그러나 한 인스턴스 내의 스레드 수를 늘리는 것이 더 쉬울 수도 있습니다.

참고 : 활용할 수있는 모든 인스턴스에 걸친 스레드의 수는 입력 한 항목의 입력 파티션 수에 의해 제한됩니다 (이는 정확하지는 않지만 엄지 손가락의 좋은 법칙입니다). 입력 항목에 충분한 파티션이 있습니까? 일부 파티션이 처리되지 않은 인스턴스에 할당되지 않은 것을 알고 있습니까?

또한 카프카 스트림은 스레드마다 병렬 처리합니다. 즉, 2 개의 스레드와 2 개의 입력 항목 파티션이있는 인스턴스가 2 개있는 경우 두 파티션이 모두 한 인스턴스의 두 스레드에 할당되는 동안 다른 인스턴스의 두 스레드는 유휴 상태입니다. 런타임 동안, 우리는 단지 스레드를 "볼"뿐이며 동일하거나 다른 KafkaStreams 인스턴스 내에서 실행되는지 여부를 알지 못합니다.