When you say Threadsafe, I assume that the calls to the send method is
Synchronized or? If it is the case, I see this as a bottleneck. We have a
high frequency system and the frequency at which the calls are made to the
send method is very high. This was the reason why I came up with multiple
instances of the producer!

On Mon, May 23, 2016 at 2:22 PM, Tom Crayford <tcrayf...@heroku.com> wrote:

> That's accurate. Why are you creating so many producers? The Kafka producer
> is thread safe and *should* be shared to take advantage of batching, so I'd
> recommend just having a single producer.
>
> Thanks
>
> Tom Crayford
> Heroku Kafka
>
> On Mon, May 23, 2016 at 10:41 AM, Joe San <codeintheo...@gmail.com> wrote:
>
> > In one of our application, we have the following setting:
> >
> > # kafka configuration
> > # ~~~~~
> > kafka {
> >   # comma seperated list of brokers
> >   # for e.g., "localhost:9092,localhost:9032"
> >   brokers = "localhost:9092,localhost:9032"
> >   topic = "asset-computed-telemetry"
> >   isEnabled = true
> >   # for a detailed list of configuration options see
> >   # under New Producer Configs
> >   # http://kafka.apache.org/082/documentation.html#producerconfigs
> >   requestRequiredAcks = 1
> >   requestTimeout = 3.seconds
> >   bufferMemoryBytes = "33554432"
> >   blockOnBufferFull = false
> >   # setting this to 0 indicates that the producer will never
> >   # block and will just drop messages once the queue buffer to
> >   # kafka broker is full
> >   queueEnqueTimeoutMs = 0.seconds
> >   producerType = "async"
> >   messageSendMaxRetries = 1
> > }
> >
> > As you can see from the configuration is that, we have a buffer of 33 MB.
> > Now I have one topic on my broker and this topic has 20 partitions. So
> what
> > I do in my producer application is that I create 10 instances of my
> > Producer and I write to the topic.
> >
> > So each producer instance gets a copy of this configuration. Does this
> mean
> > that I will reserve 33 times 10 instances = 330 MB os space just for the
> > buffer? What if I have more and more topics in the future? Will I use all
> > the memory only for the buffer?
> >
>

Reply via email to