Sử dụng ngoài bảng điều khiển dành cho người tiêu dùng (Tôi đang sử dụng Kafka 0.9.0.1), bạn chỉ có thể in khóa và giá trị của thư bằng các định dạng khác nhau. Để in khóa, hãy đặt thuộc tính print.key thành true.
Có một thuộc tính key.separator khác theo mặc định là "\ t" (tab) mà bạn cũng có thể thay đổi thành bất kỳ thứ gì bạn muốn.
Để đặt các thuộc tính này, bạn có thể tạo tệp cấu hình và sử dụng --consumer.config hoặc chuyển các thuộc tính bằng cách sử dụng --property key = value.
Bạn cũng có thể triển khai trình định dạng của riêng mình và sử dụng nó với tùy chọn - định dạng nhưng bạn vẫn sẽ chỉ có khóa và giá trị vì đó là những đặc điểm MessageFormatter cung cấp (xem writeTo bên dưới).
trait MessageFormatter {
def writeTo(key: Array[Byte], value: Array[Byte], output: PrintStream)
def init(props: Properties) {}
def close() {}
}
Ví dụ:
./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
Nguồn
2016-12-30 21:55:48
Tôi không muốn mở một câu hỏi mới, mà đang được nói tôi nghĩ Kafka nên cung cấp một cách để xác định quan trọng từ nhà sản xuất cho mỗi tin nhắn hoặc ít nhất cho mỗi chủ đề. Bạn có biết tôi có thể sử dụng cái gì không? –
$ ./bin/kafka-console-producer.sh --broker-list kafka-1: 9092 --topic topic1 --property parse.key = true --property key.separator = "-" khóa-giá trị –