2016-07-08 2 views
0

Я использую Kafka. Это мой код, в котором я хочу отправлять сообщения на сервер kafka. Название темы «west» с сообщением «message1». Я не получаю никакой ошибки, хотя я не видел, чтобы мои отправленные сообщения в теме были какие-то неправильные Вот?Невозможно отправлять сообщения в тему kafka через код Java

class SimpleProducer { 

    public static void main(String[] args) throws Exception{  
    Properties props = new Properties(); 
    props.put("bootstrap.servers","172.xxxxxxxxx:9092"); 
    props.put("serializer.class", "kafka.serializer.DefaultEncoder"); 
    props.put("acks", "1"); 
    props.put("retries", 1); 
    props.put("batch.size", 16384); 
    props.put("linger.ms", 0); 
    props.put("client.id", "foo"); 
    props.put("buffer.memory", 33554432); 
    props.put("timeout.ms", "500"); 
    props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 
    props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 
    props.setProperty(ProducerConfig.MAX_BLOCK_MS_CONFIG, "500"); 
    props.setProperty(ProducerConfig.RETRY_BACKOFF_MS_CONFIG, "100"); 

    System.out.println("ready to send msg"); 

    try { 
     Producer<String, String> producer = new KafkaProducer<String, String>(props); 

     producer.send(new ProducerRecord<String, String>("west","message1")); 

     System.out.println("Message sent successfully"); 
     producer.close(); 
    } 
    catch(Exception e) 
    { 
     System.out.println("Messgae doesn't sent successfully"); 
     e.printStackTrace(); 

    } 
    } 
} 
+0

Как вы проверяете сообщения, написанные и преданные брокеру? –

+0

На данный момент я отправляю сообщение по определенной теме и проверяю его с помощью следующей команды: - bin/kafka-console-consumer.sh --zookeeper localhost: 2181 --topic topic-name --from- начало – Sagar

+0

Я пишу произвольного продюсера, чтобы получать сообщения от Java к теме. Вызов показанного основного не приводит к сообщению в теме Kafka и не печатает сообщения об ошибках. У кого-нибудь есть идея, почему сообщение не приходит в мою тему? – Sagar

ответ

0

API, который вы использовали для отправки сообщения, является асинхронным. Используйте форму send(), которая имеет два аргумента. Второй аргумент - это обратный вызов, который вы можете использовать, чтобы увидеть, действительно ли действительно работает отправка или была какая-то ошибка.

Смежные вопросы