Connect to Kafka Data from a Connection Pool in Jetty

Ready to get started?

Download for a free trial:

Download Now

Learn more:

Apache Kafka JDBC Driver

Rapidly create and deploy powerful Java applications that integrate with Apache Kafka.



The Kafka JDBC Driver supports connection pooling: This article shows how to connect faster to Kafka data from Web apps in Jetty.

The CData JDBC driver for Kafka is easy to integrate with Java Web applications. This article shows how to efficiently connect to Kafka data in Jetty by configuring the driver for connection pooling. You will configure a JNDI resource for Kafka in Jetty.

Configure the JDBC Driver for Salesforce as a JNDI Data Source

Follow the steps below to connect to Salesforce from Jetty.

  1. Enable the JNDI module for your Jetty base. The following command enables JNDI from the command-line:

    java -jar ../start.jar --add-to-startd=jndi
  2. Add the CData and license file, located in the lib subfolder of the installation directory, into the lib subfolder of the context path.
  3. Declare the resource and its scope. Enter the required connection properties in the resource declaration. This example declares the Kafka data source at the level of the Web app, in WEB-INF\jetty-env.xml.

    <Configure id='kafkademo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="kafkademo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="kafkademo"/></Arg> <Arg>jdbc/kafkadb</Arg> <Arg> <New class="cdata.jdbc.apachekafka.ApacheKafkaDriver"> <Set name="url">jdbc:apachekafka:</Set> <Set name="User">admin</Set> <Set name="Password">pass</Set> <Set name="BootStrapServers">https://localhost:9091</Set> <Set name="Topic">MyTopic</Set> </New> </Arg> </New> </Configure>

    Set BootstrapServers and the Topic properties to specify the address of your Apache Kafka server, as well as the topic you would like to interact with.

    Authorization Mechanisms

    • SASL Plain: The User and Password properties should be specified. AuthScheme should be set to 'Plain'.
    • SASL SSL: The User and Password properties should be specified. AuthScheme should be set to 'Scram'. UseSSL should be set to true.
    • SSL: The SSLCert and SSLCertPassword properties should be specified. UseSSL should be set to true.
    • Kerberos: The User and Password properties should be specified. AuthScheme should be set to 'Kerberos'.

    You may be required to trust the server certificate. In such cases, specify the TrustStorePath and the TrustStorePassword if necessary.

  4. Configure the resource in the Web.xml:

    jdbc/kafkadb javax.sql.DataSource Container
  5. You can then access Kafka with a lookup to java:comp/env/jdbc/kafkadb: InitialContext ctx = new InitialContext(); DataSource mykafka = (DataSource)ctx.lookup("java:comp/env/jdbc/kafkadb");

More Jetty Integration

The steps above show how to configure the driver in a simple connection pooling scenario. For more use cases and information, see the Working with Jetty JNDI chapter in the Jetty documentation.