Kafka Log4j appender 中的延迟

Delay in Kafka Log4j appender

这是我的设置,这一切都是在 Eclipse 中完成的

  1. 我正在尝试实现 Kafka Log4j 附加程序以将消息泵入 Kafka。

  2. 我有一些 java 代码设置来创建日志消息:

    public static void main(String[] args) {
    
    SimpleDateFormat sdf = new SimpleDateFormat();
    
    log.debug("Debug message at "+sdf.format(new Date()));
    
    log.info("Info message at "+sdf.format(new Date()));
    
    log.error("Error Message at "+sdf.format(new Date()));
    
    log.fatal("Fatal Message at "+sdf.format(new Date()));
    
    log.warn("Warn Message at "+sdf.format(new Date()));
    
    log.trace("Trace Message at "+sdf.format(new Date()));
    }
    
  3. 这是我的log4j.properties

    log4j.rootLogger=TRACE, stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L %% %m%n
    
    log4j.appender.KAFKA=kafka.producer.KafkaLog4jAppender
    log4j.appender.KAFKA.BrokerList=localhost:9092
    log4j.appender.KAFKA.Topic=kfkLogs
    log4j.appender.KAFKA.producer.type=async
    log4j.appender.KAFKA.layout=org.apache.log4j.PatternLayout
    log4j.appender.KAFKA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L %% - %m%n
    
    log4j.logger.logGen.TestLog4j=TRACE, KAFKA
    
  4. 在另一个 Eclipse 实例中,我有我的 Kafka 消费者代码 运行,它基本上打印出它收到的任何消息

这是我的问题,

当我执行我的日志生产者时,我并不总是能在消费者中看到消息。有时我会看到消息,有时我不会。有时我可以重复执行生产者几秒钟,每次我看到消息时,但其他时候,消费者只得到一次,而不是下一分钟左右。然后它再次开始接收。所以我这期间推送的消息都丢失了

Kafka 发布消息时是否会有延迟?

这与我的 Kafka 或 Zookeeper 配置有关吗?

我正在本地主机上执行所有操作

请指教。

log4j.appender.KAFKA.producer.type=sync

已修复。