
com.zaradai.gluon.kafka.KafkaConsumerConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gluon-core Show documentation
Show all versions of gluon-core Show documentation
Gluon - Core micro services implementation.
The newest version!
/**
* Copyright 2017 Zaradai
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.zaradai.gluon.kafka;
import org.apache.kafka.clients.CommonClientConfigs;
import org.apache.kafka.clients.consumer.ConsumerConfig;
import java.util.Properties;
import java.util.UUID;
public class KafkaConsumerConfig {
static final String DEFAULT_KEY_DESERIALIZER = org.apache.kafka.common.serialization.StringDeserializer.class.getName();
static final String DEFAULT_VALUE_DESERIALIZER = org.apache.kafka.common.serialization.ByteArrayDeserializer.class.getName();
static final boolean DEFAULT_ENABLE_AUTO_COMMIT = true;
static final int DEFAULT_AUTO_COMMIT_TIMEOUT = 1000;
static final int DEFAULT_SESSION_TIMEOUT = 30000;
static final long DEFAULT_POLL_PERIOD = 100;
static final int DEFAULT_MAX_MESSAGE_SIZE = 1024 * 1024;
static final int DEFAULT_REQUEST_TIMEOUT = 120 * 1000;
private String servers;
private String keyDeserializer;
private String valueDeserializer;
private String groupId;
private boolean enableAutoCommit;
private int autoCommitTimeout;
private int sessionTimeout;
private long pollPeriod;
private int maxMessageSize;
private int requestTimeout;
public KafkaConsumerConfig() {
this(KafkaConfig.DEFAULT_SERVERS);
}
public KafkaConsumerConfig(String servers) {
setServers(servers).setKeyDeserializer(DEFAULT_KEY_DESERIALIZER).setValueDeserializer(DEFAULT_VALUE_DESERIALIZER).setGroupId(UUID.randomUUID().toString())
.setAutoCommitTimeout(DEFAULT_AUTO_COMMIT_TIMEOUT).setEnableAutoCommit(DEFAULT_ENABLE_AUTO_COMMIT).setSessionTimeout(DEFAULT_SESSION_TIMEOUT)
.setPollPeriod(DEFAULT_POLL_PERIOD).setMaxMessageSize(DEFAULT_MAX_MESSAGE_SIZE).setRequestTimeout(DEFAULT_REQUEST_TIMEOUT);
}
public String getServers() {
return servers;
}
public KafkaConsumerConfig setServers(String servers) {
this.servers = servers;
return this;
}
public String getKeyDeserializer() {
return keyDeserializer;
}
public KafkaConsumerConfig setKeyDeserializer(String keyDeserializer) {
this.keyDeserializer = keyDeserializer;
return this;
}
public String getValueDeserializer() {
return valueDeserializer;
}
public KafkaConsumerConfig setValueDeserializer(String valueDeserializer) {
this.valueDeserializer = valueDeserializer;
return this;
}
public String getGroupId() {
return groupId;
}
public KafkaConsumerConfig setGroupId(String groupId) {
this.groupId = groupId;
return this;
}
public boolean isEnableAutoCommit() {
return enableAutoCommit;
}
public KafkaConsumerConfig setEnableAutoCommit(boolean enableAutoCommit) {
this.enableAutoCommit = enableAutoCommit;
return this;
}
public int getAutoCommitTimeout() {
return autoCommitTimeout;
}
public KafkaConsumerConfig setAutoCommitTimeout(int autoCommitTimeout) {
this.autoCommitTimeout = autoCommitTimeout;
return this;
}
public int getSessionTimeout() {
return sessionTimeout;
}
public KafkaConsumerConfig setSessionTimeout(int sessionTimeout) {
this.sessionTimeout = sessionTimeout;
return this;
}
public long getPollPeriod() {
return pollPeriod;
}
public KafkaConsumerConfig setPollPeriod(long pollPeriod) {
this.pollPeriod = pollPeriod;
return this;
}
public int getMaxMessageSize() {
return maxMessageSize;
}
public KafkaConsumerConfig setMaxMessageSize(int maxMessageSize) {
this.maxMessageSize = maxMessageSize;
return this;
}
public int getRequestTimeout() {
return requestTimeout;
}
public KafkaConsumerConfig setRequestTimeout(int requestTimeout) {
this.requestTimeout = requestTimeout;
return this;
}
public Properties getProperties() {
Properties properties = new Properties();
properties.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, getServers());
properties.put(ConsumerConfig.GROUP_ID_CONFIG, getGroupId());
properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, getKeyDeserializer());
properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, getValueDeserializer());
properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, isEnableAutoCommit());
properties.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, getAutoCommitTimeout());
properties.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, getSessionTimeout());
properties.put(ConsumerConfig.MAX_PARTITION_FETCH_BYTES_CONFIG, getMaxMessageSize());
properties.put(ConsumerConfig.REQUEST_TIMEOUT_MS_CONFIG, getRequestTimeout());
return properties;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy