Ich habe kürzlich festgestellt, dass Camel jetzt eine eigene Komponente für Kafka hat, also habe ich beschlossen, es zu drehen.Kamel Kafka Integration
beschloss ich, eine schöne einfache Datei, um zu versuchen -> kafka Thema wie folgt ...
<route>
<from uri="file:///tmp/input" />
<setHeader headerName="kafka.PARTITION_KEY">
<constant>Test</constant>
</setHeader>
<to uri="kafka:localhost:9092?topic=test&zookeeperHost=localhost&zookeeperPort=2181&groupId=group1" />
</route>
Dies scheint einfach genug, dies jedoch auf laufend ich ...
java.lang.ClassCastException: java.lang.String cannot be cast to [B
at kafka.serializer.DefaultEncoder.toBytes(Encoder.scala:34)
at org.apache.camel.component.kafka.KafkaProducer.process(KafkaProducer.java:78)
und der die Camel-Code auf die Kontrolle, es wird der folgende ...
String msg = exchange.getIn().getBody(String.class);
KeyedMessage<String, String> data = new KeyedMessage<String, String>(topic, partitionKey.toString(), msg);
producer.send(data);
Offensichtlich ist dies eine Serialisierung Problem ist, ich bin nur nicht sicher, ob es eine Problemumgehung gibt, oder das ist inhärent ein Fehler mit der vorhandenen Implementierung? (Oder hoffentlich nur mein Missverständnis)
Irgendwelche Vorschläge? Danke,