Search code examples
apache-kafkaapache-camelavroconfluent-platform

How to write a camel router with kafka avro serializer in kafka consumer


How to write kafka avro serializer and desializer (i.e using io.confluent.kafka.serializers.KafkaAvroDeserializer)

from("kafka:localhost:9092?topic=customer_payment&groupId=group1&specificAvroReader="+ true+
            "&keyDeserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer&valueDeserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer&schemaRegistryURL=localhost:8081")
    .to("file://C:/Users/Documents/camel-kafka?fileName=MyFile.txt");

Can anyone help what are the dependencies for kafka avro confluent serializer

Please ask if any details you needed

Thanks in advance


Solution

  • Assuming you're using maven. Add confluent repository:

    <repositories>
    <!-- confluent maven repo, required to find avro deps -->
    <repository>
      <id>confluent</id>
      <url>https://packages.confluent.io/maven/</url>
    </repository>
    

    Add dependencies including streams serde if this is the case:

    <dependencies>
    <!-- avro -->
    <dependency>
      <groupId>org.apache.avro</groupId>
      <artifactId>avro</artifactId>
      <version>${avro.version}</version>
    </dependency>
    <dependency>
      <groupId>io.confluent</groupId>
      <artifactId>kafka-avro-serializer</artifactId>
      <version>${confluent.version}</version>
    </dependency>
    

    ... Build plugin, if you're trying to generate java types from an Avro schema.

    <build>
        <plugins>
            <!-- avro -->
            <plugin>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro-maven-plugin</artifactId>
                <version>${avro.version}</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>schema</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>