/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.tanaguru.kafka.messaging; import java.io.IOException; import java.net.URISyntaxException; import java.util.*; import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; import kafka.javaapi.producer.Producer; import kafka.producer.KeyedMessage; import kafka.producer.ProducerConfig; import org.apache.log4j.Logger; /** * * @author omokeddem at oceaneconsulting * */ public class MessagesProducer { public Producer<String, String> producer; public String topic; private static final Logger logger = Logger.getLogger(MessagesProducer.class); public MessagesProducer(String broker_list, String zookeeper, String topic_) { Properties props = new Properties(); props.put("metadata.broker.list", broker_list); props.put("zk.connect", zookeeper); props.put("serializer.class", "kafka.serializer.StringEncoder"); props.put("request.required.acks", "1"); props.put("request.timeout.ms","50000"); topic = topic_; ProducerConfig config = new ProducerConfig(props); producer = new Producer<String, String>(config); } public void sendMessage(String message) throws ParserConfigurationException, SAXException, IOException, URISyntaxException { try { KeyedMessage<String, String> data = new KeyedMessage<String, String>( topic,message, message); producer.send(data); } catch (Exception e) { logger.error("Error sending message Kafka"); } } public void killProducer() { producer.close(); } }