bootique-kafka-client-0.8: Bootique wrapper for Kafka client compatible with broker version 0.8.*

Provides integration of various versions of Kafka clients with Bootique

License

License

Categories

Categories

CLI User Interface Bootique Web Frameworks
GroupId

GroupId

io.bootique.kafka.client
ArtifactId

ArtifactId

bootique-kafka-client-0.8
Last Version

Last Version

0.25
Release Date

Release Date

Type

Type

jar
Description

Description

bootique-kafka-client-0.8: Bootique wrapper for Kafka client compatible with broker version 0.8.*
Provides integration of various versions of Kafka clients with Bootique
Project Organization

Project Organization

ObjectStyle LLC

Download bootique-kafka-client-0.8

How to add to project

<!-- https://jarcasting.com/artifacts/io.bootique.kafka.client/bootique-kafka-client-0.8/ -->
<dependency>
    <groupId>io.bootique.kafka.client</groupId>
    <artifactId>bootique-kafka-client-0.8</artifactId>
    <version>0.25</version>
</dependency>
// https://jarcasting.com/artifacts/io.bootique.kafka.client/bootique-kafka-client-0.8/
implementation 'io.bootique.kafka.client:bootique-kafka-client-0.8:0.25'
// https://jarcasting.com/artifacts/io.bootique.kafka.client/bootique-kafka-client-0.8/
implementation ("io.bootique.kafka.client:bootique-kafka-client-0.8:0.25")
'io.bootique.kafka.client:bootique-kafka-client-0.8:jar:0.25'
<dependency org="io.bootique.kafka.client" name="bootique-kafka-client-0.8" rev="0.25">
  <artifact name="bootique-kafka-client-0.8" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.bootique.kafka.client', module='bootique-kafka-client-0.8', version='0.25')
)
libraryDependencies += "io.bootique.kafka.client" % "bootique-kafka-client-0.8" % "0.25"
[io.bootique.kafka.client/bootique-kafka-client-0.8 "0.25"]

Dependencies

compile (6)

Group / Artifact Type Version
org.apache.kafka : kafka_2.9.2 jar 0.8.2.2
io.bootique : bootique jar 0.25
org.slf4j : slf4j-api jar 1.7.25
org.apache.zookeeper : zookeeper jar 3.4.6
com.101tec : zkclient jar 0.3
org.slf4j : log4j-over-slf4j jar 1.7.25

test (3)

Group / Artifact Type Version
junit : junit jar 4.12
org.mockito : mockito-core jar 2.15.0
io.bootique : bootique-test jar 0.25

Project Modules

There are no modules declared in this project.

Build Status Maven Central

bootique-kafka

Integration of Kafka client and Kafka streams for Bootique. See usage examples:

Dependencies

Include the BOMs and then bootique-kafka-client:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.bootique.bom</groupId>
            <artifactId>bootique-bom</artifactId>
            <version>2.0.M1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
...

<!-- If using Producer and/or Consumer -->
<dependency>
	<groupId>io.bootique.kafka</groupId>
	<artifactId>bootique-kafka-client</artifactId>
</dependency>

<!-- If using streams -->
<dependency>
	<groupId>io.bootique.kafka</groupId>
	<artifactId>bootique-kafka-streams</artifactId>
</dependency>

Producer/Consumer Configuration

Configure parameters in the YAML. Note that practically all of these settings can be overidden when obtaining a specific Producer or Consumer instance via io.bootique.kafka.client.KafkaClientFactory. So this is just a collection of defaults for the most typical Producer or Consumer:

kafkaclient:
  # any number of named clusters, specifying comma-separated bootstrap Kafka servers for each.
  clusters:
    cluster1: 127.0.0.1:9092
    cluster2: host1:9092,host2:9092
  consumer:
    autoCommit: true
    autoCommitInterval: "200ms"
    defaultGroup: myappgroup
    sessionTimeout: "2s"
  producer:
    acks: all # values are "all" or numeric number for min acks
    retries: 1
    batchSize: 16384
    linger: "1ms"
    bufferMemory: 33554432

Now you can inject producer and consumer factories and create any number of producers and consumers. Producer example (also see this code sample) :

@Inject
KafkaProducerFactory factory;

public void runProducer() {

    Producer<byte[], String> producer = factory
        .charValueProducer()
        .cluster("cluster2")
        .create();

    producer.send(new ProducerRecord<>("mytopic", "Hi!"));

    // close if there's nothing else to send
    producer.close();
}

Consumer example (also see this code sample) :

@Inject
KafkaConsumerFactory factory;

public void runConsumer() {
    
    KafkaConsumerRunner<byte[], String> consumer = factory
        .charValueConsumer()
        .cluster("cluster1")
        .group("somegroup")
        .topic("mytopic")
        .pollInterval(Duration.ofSeconds(1))
        .create();

    for (ConsumerRecord<byte[], String> r : consumer) {
        System.out.println(r.topic() + "_" + r.partition() + "_" + r.offset() + ": " + r.value());
    }

    consumer.close();
}

Streams Configuration

TODO

io.bootique.kafka.client

Bootique Project

Bootique is a minimally opinionated platform for modern runnable Java apps

Versions

Version
0.25
0.24
0.5
0.4
0.3
0.2
0.1