2015-09-04 38 views
1

因此,这里是我的设置,这是所有被在Eclipse延迟卡夫卡Log4j追加

  1. 我想实现的卡夫卡Log4j追加到抽取消息成为卡夫卡完成。

  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或Zookeeper配置有关吗?

我正在执行本地主机上的所有内容

请指教。

+1

请格式化您的文章更清楚。 – CubeJockey

+0

完成,感谢您的建议 – AbtPst

回答

0
log4j.appender.KAFKA.producer.type=sync 

固定它。