Kafka Client Configuration. Any configuration properties supported by Kafka are allowed. Only the most commonly used properties are described here. Please refer to the Kafka documentation for a full list.

Role (role)

The role of this client. The is an Akana specific property used to distinguish between configurations. Currently, only the 'monitoring' role is used to identify the Kafka configuration to use for usage monitoring.

Bootstrap Servers (bootstrap.servers)

Kafka bootstrap servers. This is a comma-separated list where each value has the form <host>:<port>.

Security Protocol (security.protocol)

Protocol used to communicate with brokers

Acknowledgments (acks)

The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. If acks=0 then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and the retries configuration will not take effect (as the client won't generally know of any failures). The offset given back for each record will always be set to -1. Setting acks=1 will mean the leader will write the record to its local log but will respond without awaiting full acknowledgement from all followers. In this case should the leader fail immediately after acknowledging the record but before the followers have replicated it then the record will be lost. With acks=all the leader will wait for the full set of in-sync replicas to acknowledge the record. This guarantees that the record will not be lost as long as at least one in-sync replica remains alive. This is the strongest available guarantee. This is equivalent to the acks=-1 setting.

Buffer Memory (buffer.memory)

The total bytes of memory the producer can use to buffer records waiting to be sent to the server. If records are sent faster than they can be delivered to the server the producer will block for max.block.ms after which it will throw an exception.

Buffer Size (batch.size)

Producers will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition. This helps performance on both the client and the server. This configuration controls the default batch size in bytes.

Group ID (group.id)

A unique string that identifies the consumer group this consumer belongs to. This property is required if the consumer uses either the group management functionality by using subscribe(topic) or the Kafka-based offset management strategy.

Enable Auto Commit (enable.auto.commit)

If true the consumer's offset will be periodically committed in the background.

Auto Offset Reset (auto.offset.reset)

Controls what to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server (e.g. because that data has been deleted). A value of 'earliest' will automatically reset the offset to the earliest offset. The 'latest' setting will automatically reset the offset to the latest offset. A value of 'none' will throw exception to the consumer if no previous offset is found for the consumer's group.

SASL mechanism (sasl.mechanism)

SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.

SASL JAAS config (sasl.jaas.config)

JAAS login context parameters for SASL connections in the format used by JAAS configuration files. JAAS configuration file format is described at https://docs.oracle.com/javase/8/docs/technotes/guides/security/jgss/tutorials/LoginConfigFile.html. The format for the value is: 'loginModuleClass controlFlag (optionName=optionValue)*;'. For example: org.apache.kafka.common.security.plain.PlainLoginModule required username='admin' password='1234';

SSL endpoint identification algorithm (ssl.endpoint.identification.algorithm)

The endpoint identification algorithm to validate server hostname using server certificate.

Truststore location (ssl.truststore.location)

The location of the trust store file.

Truststore password (ssl.truststore.password)

The password for the trust store file. If a password is not set access to the truststore is still available, but integrity checking is disabled.

Keystore password (ssl.keystore.password)

The password of the private key in the key store file. This is optional for client.

Keystore alias password (ssl.key.password)

The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.