Hear from Salesforce leaders on how to create and deploy Agentforce agents.
Contact Us 1-800-596-4880

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:

  1. Use Maven to create a Java project and add the custom partitioner to it:

    public class CustomPartitioner implements Partitioner {
    // Implementation
    }
    java
  2. 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
  3. 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
  4. 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.

View on GitHub