Ich benutze Kafka Consumer, um von mehreren Themen zu lesen, und ich brauche eine von ihnen, um höhere Priorität zu haben. Die Verarbeitung nimmt viel Zeit in Anspruch, und es gibt immer viele Nachrichten in Themen mit niedriger Priorität, aber die Nachrichten von anderen müssen so schnell wie möglich verarbeitet werden.Kafka Consumer - Topic (s) mit höherer Priorität
Es ist eine ähnliche Frage wie Does Kafka support priority for topic or message?, aber diese verwendet alte API.
In neuen API (0.10.1.1), gibt es Methoden,
KafkaConsumer::pause(Collection)
KafkaConsumer::resume(Collection)
Aber es ist mir nicht klar, wie effektiv zu erkennen, dass es neue Nachrichten in hohem Priorität Thema und es ist notwendig Verbrauch zu pausieren von den anderen Themen.
Irgendwelche Ideen/Beispiele?
Sie können überprüfen, ob endOffsets für die Partitionen, die Sie überwachen, größer als die letzten festgeschriebenen Offsets für diese Partitionen sind. Wie das genau funktioniert, wird implementationsspezifisch sein, aber das wird dich wissen lassen, ob es mehr Nachrichten zu konsumieren gibt, bevor du abrufst. – dawsaw