Ответ 1
Используя встроенный консольный потребитель (я использую Kafka 0.9.0.1), вы можете распечатать только ключ и значение сообщений, используя разные форматы. Чтобы напечатать ключ, установите свойство print.key=true
.
Есть еще одно свойство key.separator
которое по умолчанию равно "\ t" (вкладка), которое вы также можете изменить на что угодно.
Чтобы установить эти свойства, вы можете создать файл конфигурации и использовать --consumer.config <config file>
или передать свойства, используя --property key=value
.
Вы также можете реализовать свой собственный форматтер и использовать его с --formatter
но у вас останутся только ключ и значение, потому что это то, что обеспечивает черта MessageFormatter (см. WriteTo ниже).
trait MessageFormatter {
def writeTo(key: Array[Byte], value: Array[Byte], output: PrintStream)
def init(props: Properties) {}
def close() {}
}
Например:
./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