Hi Guozhang,
Sorry for the delayed response. The code we use for the producer send call
looks like this:
We instantiate the producer like this:
Producer producer = new Producer(config, context.getEventSerializer(), new
ProducerHandlerWrapper(config, context.getCallback()), null,
context.getPart
Liz,
Could you paste your code for calling the producer send call here? Just
realized in 0.7 there might be some calling pattern corner cases that cause
concurrent access of the serializer.
Also, I would recommend you to try out the new version of Kafka (0.8.x), in
which each producer will only h
Hi Guozhang,
Thanks for you response. We've only got one producer client (per Kryo
instance) but the producer client is configured (via the broker.list
config) to produce to two Kafka brokers. When we create the Producer, we
pass in an instance of the serializer. What if we used the serializer.clas
Hi Liz,
Do you have multiple producer clients that use the same Kryo serializer
objects? Each client will only have one background thread that tries to
call serialize(), and hence in that case you will have concurrent access.
Guozhang
On Mon, Jan 12, 2015 at 5:32 PM, Elizabeth Bennett
wrote:
Hi Kafka Users,
I have written my own implementation of the kafka Encoder class for
serializing objects to Messages. It uses Kryo, which is a non-thread safe
java serialization library. I'm using Kafka 0.7.2.
We recently ran into an issue where we increased the number of kafka
brokers for our kafk