2016-07-29 11 views
2

Ich untersuche Apache Kafka, und mein Anwendungsfall erfordert, dass der Client Nachrichten filtern kann und dass die Filterung auf dem Broker statt auf dem Client erfolgt. Diese Anforderung ist identisch mit der Verwendung eines JMS Selectors.Apache Kafka Client mit Selektor?

Es ist mein Verständnis, obwohl ich vielleicht falsch, dass Kafka keinen Selektor hat, und diese Filterung wird auf dem Client durchgeführt. Daher werden alle Nachrichten an den Client gesendet, und der Client ist für den Filter verantwortlich.

Gibt es trotzdem einen JMS Selector Ansatz, bei dem die Filterung auf dem Broker erfolgt?

+0

Wie haben Sie das umgesetzt? Ich würde es lieben zu hören – selotape

Antwort

3

Nein, so etwas kann man nicht machen. Das Beste, was Sie tun können, ist auf der Clientseite zu filtern. Apache Kafka API unterstützt nur das Holen von Art "gib mir höchstens 1 Megabyte Nachrichten für Thema N Partition M, beginnend mit Offset X".

Sie können auf Wire Protocol reference verweisen, um mögliche Optionen für eine Abrufanforderung anzuzeigen, aber es enthält nichts, wonach Sie suchen.

Eigentlich ist Kafka so schnell, weil jeder Abruf nur ein sequentieller Lesevorgang ist, also glaube ich nicht, dass dies in zukünftigen Versionen implementiert wird (aber ich bin froh, wenn ich falsch liege :)).