Hallo ich verwende Kafka in meiner Anwendung für die Warteschlange. Ich pumpe 75k records/sec zu meiner Applikation, die von kafka in die Warteschlange gestellt wird. Meine Anwendung wird auf openstack vms bereitgestellt. Aufgrund einiger Infrastrukturprobleme, wenn Kafka diese Datensätze auf dem Datenträger speichert, sehe ich mich mit CRC-Problemen konfrontiert, die mit der Beschädigung von Datensätzen zusammenhängen. Unten ist die Ausnahme:Können wir Kafka nur zum Einreihen in die Warteschlange verwenden, ohne auf der Festplatte zu speichern? Wenn ja, wie können wir es erreichen?
org.apache.kafka.common.KafkaException: Error deserializing key/value for partition TcpMessage-3 at offset 1331363158
at org.apache.kafka.clients.consumer.internals.Fetcher.parseRecord(Fetcher.java:628) ~[kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.Fetcher.handleFetchResponse(Fetcher.java:566) ~[kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.Fetcher.access$000(Fetcher.java:69) ~[kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.Fetcher$1.onSuccess(Fetcher.java:139) ~[kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.Fetcher$1.onSuccess(Fetcher.java:136) ~[kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.RequestFuture.fireSuccess(RequestFuture.java:133) ~[kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.RequestFuture.complete(RequestFuture.java:107) ~[kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient$RequestFutureCompletionHandler.onComplete(ConsumerNetworkClient.java:380) ~[kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:274) [kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:320) [kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:213) [kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:193) [kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:908) [kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:853) [kafka-clients-0.9.0.1.jar:?]
at com.affirmed.mediation.edr.kafka.tcpMessage.TcpMessageConsumer.doWork(TcpMessageConsumer.java:196) [EdrServer.jar:?]
at com.affirmed.mediation.edr.kafka.tcpMessage.TcpMessageConsumer.run(TcpMessageConsumer.java:255) [EdrServer.jar:?]
Caused by: org.apache.kafka.common.record.InvalidRecordException: **Record is corrupt (stored crc = 2053731240, computed crc = 2767221639)**
at org.apache.kafka.common.record.Record.ensureValid(Record.java:226) ~[kafka-clients-0.9.0.1.jar:?]
at org.apache.kafka.clients.consumer.internals.Fetcher.parseRecord(Fetcher.java:617) ~[kafka-clients-0.9.0.1.jar:?]
... 15 more
So ist es eine Möglichkeit, kafka zu verwenden, nur für Warteschlangen ohne die Aufzeichnungen auf Festplatte zu speichern? Wenn ja, wie können wir es erreichen?
Nur ein Kommentar, dass die Version 0.9 von Kafka fast 2 Jahre alt ist und Sie möchten möglicherweise aktualisieren, um einige der neuen Funktionen Ike in 0.11 zu erhalten, können Sie alle Nachrichten in der Warteschlange älter als den Offset, den Sie verarbeitet haben, löschen –