
org.frameworkset.plugin.kafka.BaseKafkaConsumerThread Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bboss-plugin-kafka1x Show documentation
Show all versions of bboss-plugin-kafka1x Show documentation
hibernate plugin,word/pdf plugin
The newest version!
package org.frameworkset.plugin.kafka;
import kafka.consumer.ConsumerIterator;
import kafka.consumer.KafkaStream;
import kafka.message.MessageAndMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public abstract class BaseKafkaConsumerThread implements Runnable {
protected final Logger logger = LoggerFactory.getLogger(getClass());
protected KafkaStream stream;
protected StoreService storeService;
protected String name;
protected boolean shutdown ;
protected BaseKafkaConsumer consumer;
protected String topic;
// String topic,
// private HDFSService logstashService;
// protected ConsumerConnector consumer;
public BaseKafkaConsumerThread(BaseKafkaConsumer consumer,String topic,String name,KafkaStream stream,StoreService storeService) {
this.stream = stream;
this.storeService = storeService;
this.name = name;
this.consumer = consumer;
this.name = name;
this.topic = topic;
}
public void shutdown(){
if(shutdown)
return;
this.shutdown = true;
Thread.currentThread().interrupt();
try {
Thread.currentThread().join();
} catch (InterruptedException e) {
}
}
@Override
public void run() {
ConsumerIterator it = stream.iterator();
//logger.debug(Thread.currentThread().getName() + ": dddddddddddddddddddddddddd");
while (it.hasNext()) {
if(shutdown)
break;
MessageAndMetadata mam = it.next();
try {
if(storeService != null){
handleData( consumer,mam) ;
}
else
{
logger.debug(Thread.currentThread().getName() + ": partition[" + mam.partition() + "],"
+ "offset[" + mam.offset() + "], " + new String(mam.message(),"UTF-8"));
}
// Map var1 = new HashMap();
// TopicAndPartition topicAndPartition = new TopicAndPartition(this.topic,mam.partition());
// OffsetAndMetadata offsetAndMetadata = new OffsetAndMetadata(0l);
// var1.put(topicAndPartition,null);
// this.consumer.commitOffset();
}
catch (InterruptedException e){
logger.error("中断异常:",e);
this.shutdown();
break;
}
catch (ShutdownException e){
logger.error("中断异常:",e);
this.shutdown();
break;
}
catch (Exception e) {
logger.error("系统异常:",e);
}
catch (Throwable e) {
logger.error("系统异常:",e);
}
}
}
protected abstract void handleData(BaseKafkaConsumer consumer,MessageAndMetadata mam) throws Exception;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy