Kakfa 0.10.2.1生产者关闭方法问题

时间:2018-07-16 05:04:33

标签: java apache-kafka apache-zookeeper

我们每次都在单独的线程中创建新的生产者连接(40个线程池,大多数时间将使用所有线程),并在工作完成时关闭它。它是一个Java进程。

并非总是如此,但有时紧密的连接需要10秒钟以上,并且观察到从未发布过特定消息。

可以请你帮忙。

  Properties prop = new Properties();
  prop.put("bootstarp.servers",--);
  prop.put("acks","all");

  //some ssl properties
  ---
  //ends


    KafkaProducer connection = null;
    try { 
    connection = new KafkaProducer<String, byte[]>(props);
    msg.setTopic(topic);
    msg.setDate(new Date());
    connection.send(msg);
    } catch() {

    } finally {
    connection.close();// sometimes it takes more than 10 secs and the above message was not send
    }

生产者配置:

最大飞行中请求数/连接数= 5

acks =全部

batch.size = 16384

linger.ms = 0

最大块毫秒= 60000

request.timeout.ms = 5000

重试= 0


已更新:

如果我在connection.close()之前调用connection.flush()会影响性能吗?

由于超时设置为5000(request.timeout.ms),生产者发送的消息将失败,我可以将重试添加到1以使消息永不丢失吗?

0 个答案:

没有答案