Ich bin gerade mit Kafka 0.8 beta 1 aufgestanden. Ich habe ein wirklich einfaches Beispiel, das läuft, das Problem ist, ich kann nur einen Nachrichtenkonsumenten zur Arbeit bringen, nicht mehrere. Das heißt, die Methode runSingleWorker () WORKS. Die Methode run () FUNKTIONIERT NICHT:
%Vor%Und in meinem Spielzeugverbraucher:
%Vor%Das Problem ist, dass der Pool der Arbeiter keine Nachrichten aufnimmt:
%Vor%Wenn ich Nachrichten über die produce-Befehlszeile hinzufüge, werden die Nachrichten unter der Single-Thread-Worker-Version gedruckt, aber Nachrichten werden nicht in der Multi-Stream-Situation gedruckt. Was ist denn hier los? Wie kann ich das beheben?
Btw, die pom.xml für kafka 0.8 ist kein gültiger Pom und wird keine Abhängigkeiten erhalten, also hier ist ein Pom mit vollständigen Abhängigkeiten.
%Vor%Vielleicht zu spät für den Fragesteller, könnte aber anderen Entwicklern nützlich sein. Es scheint, dass Sie nur eine Partition für einige Verbraucher verwendet haben - das ist falsch. Zitat aus Dokumentation :
Da es viele Partitionen gibt, gleicht dies die Last immer noch über viele Verbraucherinstanzen aus. Beachten Sie jedoch, dass keine Consumer-Instanzen mehr sein können als Partitionen .
Wenn Sie also an Konsumenten denken, sollten Sie überlegen, wie Sie Nachrichten nach Partitionen aufteilen. In den meisten Fällen sollten Sie eine Gruppierung auf höherer Ebene verwenden oder sie standardmäßig als zufällig definieren.
Tags und Links scala java apache-kafka message-queue