我目前正在开发Kafka集成,查看发送javadoc,它为KafkaProducer的发送API声明了以下内容:
@throws BufferExhaustedException如果block.on.buffer.full=false
且缓冲区已满。
然而,看看0.10.0.0代码,我找不到实际抛出此异常的地方,所以在我看来,我必须将max.block.ms设置为0并期望更改为TimeoutException以便以无阻碍的方式工作。
下面是版本0.8.2.1中BufferPool类的一个片段,我们可以清楚地看到,如果没有可用内存,则抛出BufferExhaustedException:
另一方面,在版本0.10.0.0中,代码如下:
我说正确的方法是将max.block.ms设置为0并期望TimeoutException或者仍然支持BufferExhaustedException吗?
如果不再支持BufferExhaustedException,至少应该从send API的Javadoc中删除它。
感谢。