All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.zaradai.gluon.kafka.KafkaConsumerConfig Maven / Gradle / Ivy

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