According to code of org.apache.kafka.clients.producer.KafkaProducer.

It has 1 ioThread

private final Thread
<http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/java/lang/Thread.java#Thread>
 ioThread;

  String 
<http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/java/lang/String.java#String>
ioThreadName = "kafka-producer-network-thread" + (clientId.length
<http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/java/lang/String.java#String.length%28%29>()
> 0 ? " | " + clientId : "");

210 
<http://grepcode.com/file/repo1.maven.org/maven2/org.apache.kafka/kafka-clients/0.8.2.0/org/apache/kafka/clients/producer/KafkaProducer.java#210>

<http://grepcode.com/file/repo1.maven.org/maven2/org.apache.kafka/kafka-clients/0.8.2.0/org/apache/kafka/clients/producer/KafkaProducer.java#>

        this.ioThread
<http://grepcode.com/file/repo1.maven.org/maven2/org.apache.kafka/kafka-clients/0.8.2.0/org/apache/kafka/clients/producer/KafkaProducer.java#KafkaProducer.0ioThread>
= new KafkaThread
<http://grepcode.com/file/repo1.maven.org/maven2/org.apache.kafka/kafka-clients/0.8.2.0/org/apache/kafka/common/utils/KafkaThread.java#KafkaThread>(ioThreadName,
this.sender 
<http://grepcode.com/file/repo1.maven.org/maven2/org.apache.kafka/kafka-clients/0.8.2.0/org/apache/kafka/clients/producer/KafkaProducer.java#KafkaProducer.0sender>,
true);

211 
<http://grepcode.com/file/repo1.maven.org/maven2/org.apache.kafka/kafka-clients/0.8.2.0/org/apache/kafka/clients/producer/KafkaProducer.java#211>

<http://grepcode.com/file/repo1.maven.org/maven2/org.apache.kafka/kafka-clients/0.8.2.0/org/apache/kafka/clients/producer/KafkaProducer.java#>

        this.ioThread
<http://grepcode.com/file/repo1.maven.org/maven2/org.apache.kafka/kafka-clients/0.8.2.0/org/apache/kafka/clients/producer/KafkaProducer.java#KafkaProducer.0ioThread>.start
<http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/java/lang/Thread.java#Thread.start%28%29>();

212 
<http://grepcode.com/file/repo1.maven.org/maven2/org.apache.kafka/kafka-clients/0.8.2.0/org/apache/kafka/clients/producer/KafkaProducer.java#212>


is ioThread is the one responsible for sending message from inmemory buffer
to kafka broker . So where is SyncProducer  got created and is SyncProducer
responsible for sending message from inmemory buffer to kafka broker and
where is that got created?






On Tue, Jun 30, 2015 at 9:16 PM, Guozhang Wang <wangg...@gmail.com> wrote:

> One ProducerSendThread is always the case for producer, but inside the
> thread there is one SyncProducer for each destination broker. I think that
> blog may mis-understand the design a bit.
>
> Guozhang
>
> On Tue, Jun 30, 2015 at 1:45 AM, Shushant Arora <shushantaror...@gmail.com
> >
> wrote:
>
> > According to
> > https://engineering.gnip.com/kafka-async-producer/
> > There is one ProducerSendThread  per broker. Is it changed from 0.8.2 ?
> to
> > use single send thread irrespective of broker or partitions.
> >
> >
> > On Mon, Jun 29, 2015 at 11:27 PM, Guozhang Wang <wangg...@gmail.com>
> > wrote:
> >
> > > Hi Shushant,
> > >
> > > The number of ProducerSendThread will be always one, regardless of the
> > > number of destination brokers, or the number of partitions.
> > >
> > > Guozhang
> > >
> > > On Mon, Jun 29, 2015 at 9:38 AM, Shushant Arora <
> > shushantaror...@gmail.com
> > > >
> > > wrote:
> > >
> > > > Hi
> > > >
> > > > Does kafka async producer creates thread(ProducerSendThread) in
> > producer
> > > > memory based on no number of partitions or brokers in kafka cluster
> to
> > > > which it will write.
> > > >
> > > > If my cluster had 1000 partitions does each producer will have 1000
> > > threads
> > > > running always ?
> > > >
> > >
> > >
> > >
> > > --
> > > -- Guozhang
> > >
> >
>
>
>
> --
> -- Guozhang
>

Reply via email to