To get the same behavior of 0.7, you just need to create multiple partitions for a topic in 0.8 with a replication factor of 1. When one of the partitions is not available, the producer will route the data to other partitions.
Thanks, Jun On Wed, Dec 10, 2014 at 5:58 PM, Helin Xiang <xkee...@gmail.com> wrote: > Yes, i mean the replication-factor == 1, because the data volumn is huge > for some special topic and we are more care about the disk and network > resource. > > So in your opinion, we can't have durability and availability as long as > the replication-factor == 1. Unless we implement another type of producer > by ourselves which would behave like 0.7 producer. > > Thanks > > > On Thu, Dec 11, 2014 at 9:47 AM, Joe Stein <joe.st...@stealth.ly> wrote: > > > By replica == 1 do you mean replication-factor == 1 or something > different? > > > > You should have replication-factor == 3 if you are trying to have durable > > writes survive failure. On the producer side set ack = -1 with that for > it > > to work as expected. > > > > On Wed, Dec 10, 2014 at 7:14 PM, Helin Xiang <xkee...@gmail.com> wrote: > > > > > Thanks for the reply , Joe. > > > > > > In my opinion, when replica == 1, the ack == -1 would cause producer > > > stopping sending any data to kafka cluster if 1 broker is down. That > > means > > > we could not bear single point of failure. Am I right? > > > > > > What we want is when 1 broker down, and the topic replica is set to 1, > > the > > > whole system is still available and the data would go to other > partitions > > > without loss. > > > > > > > > > THANKS again. > > > > > > On Thu, Dec 11, 2014 at 12:37 AM, Joe Stein <joe.st...@stealth.ly> > > wrote: > > > > > > > If you want no data loss then you need to set ack = -1 > > > > Copied from > > https://kafka.apache.org/documentation.html#producerconfigs > > > == > > > > -1, which means that the producer gets an acknowledgement after all > > > in-sync > > > > replicas have received the data. This option provides the best > > > durability, > > > > we guarantee that no messages will be lost as long as at least one in > > > sync > > > > replica remains. > > > > > > > > /******************************************* > > > > Joe Stein > > > > Founder, Principal Consultant > > > > Big Data Open Source Security LLC > > > > http://www.stealth.ly > > > > Twitter: @allthingshadoop <http://www.twitter.com/allthingshadoop> > > > > ********************************************/ > > > > > > > > On Wed, Dec 10, 2014 at 11:27 AM, Helin Xiang <xkee...@gmail.com> > > wrote: > > > > > > > > > Hi, > > > > > > > > > > in some topics of our system, the data volumn is so huge that we > > think > > > > > doing extra replica is a waste of disk and network resource( plus > the > > > > data > > > > > is not so important). > > > > > > > > > > firstly, we use 1 replica + ack=0, found when 1 broker is down, the > > > data > > > > > would loss 1/n. > > > > > then we tried 1 replica + ack=1, and found after 3 tries, the data > is > > > > still > > > > > lost. and when we set the try number large enough, no more data can > > be > > > > > produced to Kafka. > > > > > > > > > > If I did not misunderstand, In 0.7, when 1 broker is down, both > > > producing > > > > > and consuming are available with no data loss. I can see the reason > > why > > > > > kafka 0.8 is designed to be different like 0.7. but is there a way > > to > > > > let > > > > > producer of 0.8 act like the behavior in 0.7? We don't care which > > part > > > > of > > > > > data should go to the specific partition, as long as the data goes > > into > > > > the > > > > > kafka with no loss. > > > > > > > > > > > > > > > Thanks > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > *Best RegardsXiang Helin* > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > *Best Regards向河林* > > > > > > > -- > > > > > > *Best Regards向河林* > > > > >