当我使用log4j的KafkaAppender
时,我在放置单个broker时遇到问题,但它已停止。问题是KafkaAppender
在失败之前等待了很长时间。我使用syncsend=false
,我想设置一些超时,这样appender就不会等待这么长时间。
你能告诉我我需要如何配置KafkaAppender
以防止这种等待吗?
KafkaAppender
本身没有超时设置,但可以在KafkaProducer
上配置一些超时选项。这些选项在Kafka文档中有描述。
这里有一个示例kafka appender配置,其中有两个kafka生产者超时设置及其默认值:
<Appenders>
<Kafka name="Kafka" topic="log-test">
<PatternLayout pattern="%date %message"/>
<Property name="bootstrap.servers">localhost:9092</Property>
<Property name="request.timeout.ms">30000</Property><!-- 30 seconds -->
<Property name="transaction.timeout.ms">60000</Property><!-- 1 minute -->
</Kafka>
</Appenders>
你可能想和他们一起玩,以获得预期的行为。
此外,请记住,syncSend
选项是在log4j 2.8版本中添加的。如果你使用旧版本,它将不会有任何影响。