Korzystając z konsoli odbiornika (używam Kafki 0.9.0.1) można wydrukować tylko klucz i wartość wiadomości przy użyciu różnych formatów. Aby wydrukować klucz, ustaw właściwość print.key na true.
Istnieje jeszcze jedna właściwość key.separator, która domyślnie to "\ t" (zakładka), którą można również zmienić na dowolną.
Aby ustawić te właściwości, można utworzyć plik konfiguracyjny i użyć --consumer.config lub przekazać właściwości za pomocą --property key = value.
Możesz także zaimplementować swój własny formatter i użyć go z opcją --formatter, ale nadal będziesz miał tylko klucz i wartość, ponieważ to zapewnia cecha MessageFormatter (patrz writeTo poniżej).
trait MessageFormatter {
def writeTo(key: Array[Byte], value: Array[Byte], output: PrintStream)
def init(props: Properties) {}
def close() {}
}
Na przykład:
./bin/kafka-console-consumer.sh --new-consumer --bootstrap-server kafka-1:9092 --topic topic1 --property print.key=true --property key.separator="-" --from-beginning
key-p1
key-p2
key-p3
null-4
null-8
null-0
nie chcę, aby otworzyć nowe pytanie, co zostało powiedziane Myślę Kafka powinien zapewnić, aby określić klucz od producenta dla każdej wiadomości lub przynajmniej dla każdego tematu. Czy wiesz, z czego mogę korzystać? –
$ ./bin/kafka-console-producer.sh --broker-list kafka-1: 9092 --topic topic1 --property parse.key = true --property key.separator = "-" thekey-thevalue –