发送消息的时候, 当Broker挂掉了,消息体还能写入到消息缓存中吗?
当消息还存储在缓存中的时候, 假如Producer客户端挂掉了,消息是不是就丢失了?...什么是消息累加器RecordAccumulator
kafka为了提高Producer客户端的发送吞吐量和提高性能,选择了将消息暂时缓存起来,等到满足一定的条件, 再进行批量发送, 这样可以减少网络请求...对比,取最大值用于申请的内存大小的值。
那么, 这个消息的预估是如何预估的?纯粹的是消息体的大小吗?...而且频繁的创建和释放ProducerBatch,会导致频繁GC, 所有kafka中有个缓存池的概念,这个缓存池会被重复使用,但是只有固定( batch.size)的大小才能够使用缓存池。...当Broker挂掉了,Producer会提示下面的警告⚠️, 但是发送消息过程中
这个消息体还是可以写入到 消息缓存中的,也仅仅是写到到缓存中而已。