Is the topic to which the message is being produced, already present or is it auto created?

-Jaikiran


On 05/11/17 3:43 PM, Dale wrote:
I am using the 0.9.0.0 log4j appender for Kafka because I have a lot of apps 
dependent on log4j 1.2.x that cannot be upgraded to use newer versions of 
log4j.   It appears that the appender has become part of log4j code in later 
versions of both tools.

When I start my test app, the first message takes an exact and consistent 60 
seconds plus a couple milliseconds to go out.  The second message takes right 
around 200 milliseconds, and all the messages after that take a couple of 
milliseconds.  The timing from message 1 to 2 could be tolerated but the 60 
seconds will never work since the production use case app would typically run 
for 20 to 30 seconds.

For testing, I brought the appender code into my project and added some 
additional console messages so I could see what is going on.  Here’s a snippet 
of the console output:

********START LOG SNIPPET***********
G:\kafkademoworkspace\testlog4jgenerator>java -Dlog4j.debug 
-Dlog4j.configuration=file:///g:\kafkademoworkspace\testlog4jgenerator\log4j.properties
 -cp 
.\;G:\kafkademoworkspace\testlog4jgenerator\target\testlog4jgenerator.jar;g:\kafkademoworkspace\testlog4jgenerator\target\libs\log4j-1.2.17.jar;g:\kafkademoworkspace\testlog4jgenerator\target\libs\*;g:\kafkademoworkspace\testlog4jgenerator\target\libs\kafka-clients-0.9.0.0.jar
 com.mydomainname.messaging.testlog4jgenerator.LogGenerator
log4j: Using URL 
[file:/g:/kafkademoworkspace/testlog4jgenerator/log4j.properties] for automatic 
log4j configuration.
log4j: Reading configuration from URL 
file:/g:/kafkademoworkspace/testlog4jgenerator/log4j.properties
log4j: Parsing for [root] with value=[DEBUG,file,KAFKA].
log4j: Level token is [DEBUG].
log4j: Category root set to DEBUG
log4j: Parsing appender named "file".
log4j: Parsing layout options for "file".
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss,SSS} 
%-5p %c{1}:%L - %m%n].
log4j: End of parsing for "file".
log4j: Setting property [file] to [/apps/logs/logtest.log].
log4j: Setting property [maxBackupIndex] to [10].
log4j: Setting property [maxFileSize] to [10MB].
log4j: setFile called: /apps/logs/logtest.log, true
log4j: setFile ended
log4j: Parsed "file" options.
log4j: Parsing appender named "KAFKA".
log4j: Parsing layout options for "KAFKA".
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss,SSS} 
%-5p %c{1}:%L - %m%n].
log4j: End of parsing for "KAFKA".
log4j: Setting property [compressionType] to [none].
log4j: Setting property [topic] to [test].
log4j: Setting property [brokerList] to [localhost:9092].
log4j: Setting property [syncSend] to [false].
DPLOG: 2017-11-05T09:56:16.072Z - in Producer - creating new KafkaProducer
log4j: Kafka producer connected to localhost:9092
log4j: Logging for topic: test
log4j: Parsed "KAFKA" options.
log4j: Finished configuring.
****************************************************************
DPLOG: 2017-11-05T09:56:16.338Z - append START
DPLOG: 2017-11-05T09:56:16.339Z - after subAppend.  Message is: 2017-11-05 
03:56:16,333 DEBUG Sender:123 - Starting Kafka producer I/O thread.

log4j: [Sun Nov 05 03:56:16 CST 2017]2017-11-05 03:56:16,333 DEBUG Sender:123 - 
Starting Kafka producer I/O thread.

DPLOG: 2017-11-05T09:56:16.342Z - getting ready to send to producer.
DPLOG: 2017-11-05T09:57:16.347Z - after send to producer.
DPLOG: 2017-11-05T09:57:16.348Z - append END
****************************************************************
DPLOG: 2017-11-05T09:57:16.352Z - append START
DPLOG: 2017-11-05T09:57:16.353Z - after subAppend.  Message is: 2017-11-05 
03:56:16,338 INFO  root:36 - Logging message: x=0

log4j: [Sun Nov 05 03:56:16 CST 2017]2017-11-05 03:56:16,338 INFO  root:36 - 
Logging message: x=0

DPLOG: 2017-11-05T09:57:16.361Z - getting ready to send to producer.
DPLOG: 2017-11-05T09:57:16.526Z - after send to producer.
DPLOG: 2017-11-05T09:57:16.526Z - append END
****************************************************************
DPLOG: 2017-11-05T09:57:16.527Z - append START
DPLOG: 2017-11-05T09:57:16.528Z - after subAppend.  Message is: 2017-11-05 
03:57:16,527 INFO  root:36 - Logging message: x=1

log4j: [Sun Nov 05 03:57:16 CST 2017]2017-11-05 03:57:16,527 INFO  root:36 - 
Logging message: x=1

DPLOG: 2017-11-05T09:57:16.529Z - getting ready to send to producer.
DPLOG: 2017-11-05T09:57:16.530Z - after send to producer.
DPLOG: 2017-11-05T09:57:16.530Z - append END
****************************************************************
DPLOG: 2017-11-05T09:57:16.531Z - append START
DPLOG: 2017-11-05T09:57:16.531Z - after subAppend.  Message is: 2017-11-05 
03:57:16,531 INFO  root:36 - Logging message: x=2

log4j: [Sun Nov 05 03:57:16 CST 2017]2017-11-05 03:57:16,531 INFO  root:36 - 
Logging message: x=2

DPLOG: 2017-11-05T09:57:16.532Z - getting ready to send to producer.
DPLOG: 2017-11-05T09:57:16.533Z - after send to producer.
DPLOG: 2017-11-05T09:57:16.535Z - append END
****************************************************************
DPLOG: 2017-11-05T09:57:16.536Z - append START
DPLOG: 2017-11-05T09:57:16.536Z - after subAppend.  Message is: 2017-11-05 
03:57:16,536 INFO  root:36 - Logging message: x=3

log4j: [Sun Nov 05 03:57:16 CST 2017]2017-11-05 03:57:16,536 INFO  root:36 - 
Logging message: x=3

DPLOG: 2017-11-05T09:57:16.538Z - getting ready to send to producer.
DPLOG: 2017-11-05T09:57:16.538Z - after send to producer.
DPLOG: 2017-11-05T09:57:16.538Z - append END
****************************************************************
DPLOG: 2017-11-05T09:57:16.539Z - append START
DPLOG: 2017-11-05T09:57:16.540Z - after subAppend.  Message is: 2017-11-05 
03:57:16,539 INFO  root:36 - Logging message: x=4

log4j: [Sun Nov 05 03:57:16 CST 2017]2017-11-05 03:57:16,539 INFO  root:36 - 
Logging message: x=4

DPLOG: 2017-11-05T09:57:16.541Z - getting ready to send to producer.
DPLOG: 2017-11-05T09:57:16.542Z - after send to producer.
DPLOG: 2017-11-05T09:57:16.542Z - append END
****************************************************************
********END LOG SNIPPET***********



The code, modified for logging, for sending to the producer is:
********START CODE SNIPPET***********
System.out.println("DPLOG: " + Instant.now().toString() + " - getting ready to send 
to producer.");
Future<RecordMetadata> response = producer.send(new ProducerRecord<byte[], 
byte[]>(topic, message.getBytes()));
System.out.println("DPLOG: " + Instant.now().toString() + " - after send to 
producer.");
********END CODE SNIPPET***********

I have not been able to find any timeout of 60 seconds (60000 ms) anywhere but 
it is clear that something is happening that is exactly 60 seconds at the start 
of the run.  Whatever the timeout is, it is not breaking because the messages 
are sent to kafka.  I’ve searched the KafkaProducer code and kafka server 
configuration looking for any 60 second timeout reference and cannot find one.  
In what few examples I could find online of log data using the producer, I see 
the Starting kafka producer I/O thread with the next log entries in the same 
second so the 60 second delay I am seeing does not always appear to be there 
but it’s always there in my case.  Any ideas what could be causing it and/or 
how I can get rid of it?

Thanks,

Dale


Reply via email to