public class CustomPartitioner implements Partitioner {
// Implementation
}
java
Apache Kafka Connector 4.10 - Additional Configuration Information - Mule 4
Set additional configuration for Anypoint Connector for Apache Kafka (Apache Kafka Connector).
Configure a Custom Partitioner
You can configure a custom partitioner for Apache Kafka Connector in a Mule app:
-
Use Maven to create a Java project and add the custom partitioner to it:
-
Add this dependency in the Mule app:
<dependencies> <dependency> <groupId>org.example</groupId> <artifactId>custom-partitioner</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
java -
Add this dependency to
additionalPluginDependencies
:<plugin> <groupId>org.mule.tools.maven</groupId> <artifactId>mule-maven-plugin</artifactId> <version>${mule.maven.plugin.version}</version> <extensions>true</extensions> <configuration> <additionalPluginDependencies> <plugin> <groupId>com.mulesoft.connectors</groupId> <artifactId>mule-kafka-connector</artifactId> <additionalDependencies> <dependency> <groupId>io.confluent</groupId> <artifactId>kafka-avro-serializer</artifactId> <version>7.6.1</version> </dependency> <dependency> <groupId>org.example</groupId> <artifactId>custom-partitioner</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </additionalDependencies> </plugin> </additionalPluginDependencies> <classifier>mule-application</classifier> </configuration> </plugin>
java -
Add the custom partitioner to the producer configuration:
<kafka:producer-config name="Apache_Kafka_Producer_configuration" doc:name="Apache Kafka Producer configuration" doc:id="cb9de3c5-d6d2-4f9b-a255-75a9985bffb7"> <kafka:producer-plaintext-connection> <kafka:bootstrap-servers> <kafka:bootstrap-server value="<kafka-url>" /> </kafka:bootstrap-servers> <kafka:additional-properties> <kafka:additional-property key="key.serializer" value="org.apache.kafka.common.serialization.StringSerializer" /> <kafka:additional-property key="value.serializer" value="com.mulesoft.connectors.kafka.internal.model.serializer.MuleKafkaAvroSerializer" /> <kafka:additional-property key="schema.registry.url" value="<schema-registry-url>" /> <kafka:additional-property key="basic.auth.credentials.source" value="USER_INFO" /> <kafka:additional-property key="basic.auth.user.info" value="user:pass" /> <kafka:additional-property key="auto.register.schemas" value="true" /> <kafka:additional-property key="value.subject.name.strategy" value="io.confluent.kafka.serializers.subject.TopicNameStrategy" /> <kafka:additional-property key="partitioner.class" value="org.example.CustomPartitioner" /> </kafka:additional-properties> </kafka:producer-plaintext-connection> </kafka:producer-config>
java
Next Step
After you complete configuring the connector, you can try the examples.