kafka生产者 batch.size

小小火柴 发表于: 2017-04-01   最后更新时间: 2017-04-01 18:16:23   12,492 游览

根据官网的意思是当一批消息体大小达到这个batch.size的时候会发送。那么问题来了,如果一个topic的消息量本来就少,比如一天只发一两条,根本达不到这个batch.size大小,那么这个topic的消息是一直等吗?还是马上发送。这个发送机制是什么样的,能否详细说明?

发表于 2017-04-01
添加评论

还有一个时间维度,即使batch.size没有到,那么在一定的时间段内,依然会发送消息。也是毫秒级的。

这个时间可以配置吗?还是代码中根据某种算法确定的,或者是写死的一个固定值?

我特别想知道,当我调用了send发送了一万条消息以后,我不调用flush方法的话,这一万条消息会什么时候刷新到kafka的分区中去,我测试的时候是延迟大概五六秒会到队列,但是如果我send很大的量消息,比如100万,当线程执行完毕以后,main方法结束,只有几十万消息刷到了kafka分区,剩下的几十万丢失了。所以如果我知道他刷消息的时机就可以避免这个问题了

稍后我找找这个参数,信息太多,我忘记在哪里看的了。

止殇 -> 半兽人 5年前

想问下, producer 和 broker之间是短连接还是长连接.

想问下, producer 和 broker之间是短连接还是长连接.

半兽人 -> 止殇 5年前

长连接

Linger.ms  or  batch.size  满足其一 就发送 

想问下, producer 和 broker之间是短连接还是长连接.

你的答案

查看kafka相关的其他问题或提一个您自己的问题