Thanks Alex. On Tue, May 31, 2016 at 2:37 PM, Alex Loddengaard <a...@confluent.io> wrote:
> Hi Igor, see inline: > > On Sat, May 28, 2016 at 8:14 AM, Igor Kravzov <igork.ine...@gmail.com> > wrote: > > > I need some clarification on subject. > > In Kafka documentations I found the following: > > > > Kafka only provides a total order over messages *within* a partition, not > > between different partitions in a topic. Per-partition ordering combined > > with the ability to partition data by key is sufficient for most > > applications. However, if you require a total order over messages this > can > > be achieved with a topic that has only one partition, though this will > mean > > only one consumer process per consumer group. > > > > So here are my questions: > > 1. Does it mean if i want to have more than 1 consumer (from the same > > group) reading from one topic I need to have more than 1 partition? > > > > Yes. > > > > > > 2. Does it mean I need same amount of partitions as amount of consumers > for > > the same group? > > > > No. If you have more partitions than consumers, consumers will consume from > more than one topic. > > > > > > 3. How many consumers can read from one partition? > > > > Only one. > > > > > > Also have some questions regarding relationship between keys and > partitions > > with regard to API. I only looked at .net APIs (especially one from MS) > > but looks like the mimic Java API. > > I see when using a producer to send a message to a topic there is a key > > parameter. But when consumer reads from a topic there is a partition > > number. > > > > 1. How are partitions numbered? Starting from 0 or 1? > > 2. What exactly relationship between a key and partition? > > > > Using the default partitioner, and assuming you don't add new partitions, > all messages with the same key are guaranteed to land in the same > partition. > > > > As I understand some function on key will determine a partition. is that > > correct? > > 3. If I have 2 partitions in a topic and want some particular messages go > > to one partition and other messages go to another I should use a specific > > key for one specific partition, and the rest for another? > > > > If you always want one key to go to a specific partition, and another key > to go to a different partition, you can use a custom partitioner or the > Java API: > > > http://kafka.apache.org/090/javadoc/org/apache/kafka/clients/producer/ProducerRecord.html > > > > 4. What if I have 3 partitions and one type of messages to one particular > > partition and the rest to other 2? > > > > Same as above. Although, in most cases, all messages in a topic are the > same "type" of message. A topic is like a database table in this way. > > > > 5. How in general I send messages to a particular partition in order to > > know for a consumer from where to read? > > > > See above. > > > > Or I better off with multiple topics? > > > > This will depend on your application. > > > > > > Thanks in advance. > > >