Người tiêu dùng luôn thuộc nhóm và đối với mỗi phân vùng, Người quản lý theo dõi tiến độ của nhóm người tiêu dùng đó trong phân vùng.
Để lấy từ đầu, bạn có thể xóa tất cả các dữ liệu liên quan đến sự tiến bộ như Hussain refered
ZkUtils.maybeDeletePath(${zkhost:zkport}", "/consumers/${group.id}");
Bạn cũng có thể chỉ định bù đắp của phân vùng mà bạn muốn, theo quy định tại lõi/src/main/scala /kafka/tools/UpdateOffsetsInZK.scala
ZkUtils.updatePersistentPath(zkClient, topicDirs.consumerOffsetDir + "/" + partition, offset.toString)
Tuy nhiên, chênh lệch không được lập chỉ mục thời gian, nhưng bạn biết cho mỗi phân vùng là một chuỗi.
Nếu thư của bạn chứa dấu thời gian (và hãy cẩn thận rằng dấu thời gian này không liên quan đến thời điểm Kafka nhận được thư của bạn), bạn có thể thử làm một người lập chỉ mục cố gắng truy xuất một mục nhập theo các bước bằng cách tăng độ lệch bằng N và lưu trữ tuple (chủ đề X, phần 2, offset 100, dấu thời gian) ở đâu đó.
Khi bạn muốn truy xuất các mục từ một thời điểm cụ thể, bạn có thể áp dụng tìm kiếm nhị phân cho chỉ mục thô cho đến khi tìm thấy mục nhập bạn muốn và tìm nạp từ đó.
Nguồn
2013-06-13 10:09:28
Họ cũng có mẫu mã để tham khảo. đáng xem xét – Hild
Ví dụ mà Hild đề cập đến là: https://cwiki.apache.org/confluence/display/KAFKA/0.8.0+SimpleConsumer+Example Bạn không thể sử dụng ví dụ 'Người tiêu dùng', bạn phải sử dụng Ví dụ 'SimpleConsumerDemo' để chơi với các offset. – pherris