![JAR search and dependency download from the Maven repository](/logo.png)
com.github.hackerwin7.jlib.utils.drivers.kafka.producer.KafkaProducer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jlib-utils Show documentation
Show all versions of jlib-utils Show documentation
utils set for java projects
package com.github.hackerwin7.jlib.utils.drivers.kafka.producer;
import com.github.hackerwin7.jlib.utils.drivers.kafka.conf.KafkaConf;
import com.github.hackerwin7.jlib.utils.drivers.kafka.data.KafkaMsg;
import kafka.javaapi.producer.Producer;
import kafka.producer.KeyedMessage;
import kafka.producer.ProducerConfig;
import org.apache.log4j.Logger;
import java.util.ArrayList;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: hackerwin7
* Date: 2015/12/08
* Time: 11:45 AM
* Desc: kafka producer client
*/
public class KafkaProducer {
/*logger*/
private static Logger logger = Logger.getLogger(KafkaProducer.class);
/*driver*/
private Producer producer = null;
/**
* constructor kafka producer client by kafka conf
* @param conf
*/
public KafkaProducer(KafkaConf conf) {
ProducerConfig config = new ProducerConfig(conf.getProps());
producer = new Producer(config);
logger.info("loaded kafka producer config = " + conf);
}
/**
* close producer client
*/
public void close() {
if(producer != null)
producer.close();
}
/**
* sendKafkaMsg single
* @param msg
*/
public void sendKafkaMsg(KafkaMsg msg) {
if(msg != null)
producer.send(toKeyedMessage(msg));
}
/**
* sendKafkaMsg batch
* @param msgs
*/
public void sendKafkaMsg(List msgs) {
if(msgs.size() > 0)
producer.send(toKeyedMessage(msgs));
}
public void send(KeyedMessage msg) {
if(msg != null)
producer.send(msg);
}
public void send(List> msgs) {
if(msgs.size() > 0)
producer.send(msgs);
}
/**
* convert to keyedmessage
* @param msg
* @return
*/
public static KeyedMessage toKeyedMessage(KafkaMsg msg) {
return new KeyedMessage(msg.getTopic(), msg.getKey(), msg.getVal());
}
/**
* convert to batch keyedmessages
* @param msgs
* @return
*/
public static List> toKeyedMessage(List msgs) {
List> keyedMessages = new ArrayList<>();
for(KafkaMsg msg : msgs) {
keyedMessages.add(new KeyedMessage(msg.getTopic(), msg.getKey(), msg.getVal()));
}
return keyedMessages;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy