Hi,

" Unless the producer is always putting the messages into one partition, I 
would expect both consumer groups to read from the topic."

This was the issue. I thought the producer would round robin messages to 
different partitions  but it must have just been writing to a single partition. 
I re-wrote the producer to use the new API and target set partitions and I can 
now see both consumer groups consuming from different partitions.

Phill 

-----Original Message-----
From: Phill Tomlinson [mailto:philltomlin...@fico.com] 
Sent: 10 March 2015 08:18
To: users@kafka.apache.org
Subject: RE: Multiple consumer groups with same group id on a single topic

Hi,

Code snippet below. This creates two consumers with same group id 
"consumer-group", they consume from "common-topic" which has 6 partitions. Each 
group has 3 consumers.

However only one of the groups will ever run. Unless the producer is always 
putting the messages into one partition, I would expect both consumer groups to 
read from the topic.

Thanks,
Phill

Properties consumerProps = new Properties(); 
consumerProps.put("zookeeper.connect", zookeeperNode); 
consumerProps.put("group.id", "consumer-group"); final ConsumerConnector 
consumerConnector = Consumer.createJavaConsumerConnector(new 
ConsumerConfig(consumerProps)); Map<String, Integer> topicCount = new 
HashMap<String, Integer>(); topicCount.put("common-topic", new Integer(3)); 
Map<String, List<KafkaStream<byte[], byte[]>>> consumerMap = 
consumerConnector.createMessageStreams(topicCount);

// put each stream into its own thread
List<KafkaStream<byte[], byte[]>> streams = consumerMap.get(topic); for (final 
KafkaStream stream : streams) {
            executorService1.submit(new CcsKafkaStreamConsumer(stream, 
("common-topic", messageWrapper)); }



Properties consumerProps = new Properties(); 
consumerProps.put("zookeeper.connect", zookeeperNode); 
consumerProps.put("group.id", "consumer-group"); final ConsumerConnector 
consumerConnector = Consumer.createJavaConsumerConnector(new 
ConsumerConfig(consumerProps)); Map<String, Integer> topicCount = new 
HashMap<String, Integer>(); topicCount.put("common-topic", new Integer(3)); 
Map<String, List<KafkaStream<byte[], byte[]>>> consumerMap = 
consumerConnector.createMessageStreams(topicCount);

// put each stream into its own thread
List<KafkaStream<byte[], byte[]>> streams = consumerMap.get(topic); for (final 
KafkaStream stream : streams) {
            executorService2.submit(new CcsKafkaStreamConsumer(stream, 
("common-topic", messageWrapper)); }


-----Original Message-----
From: Kevin Scaldeferri [mailto:ke...@scaldeferri.com]
Sent: 09 March 2015 18:13
To: users@kafka.apache.org
Subject: Re: Multiple consumer groups with same group id on a single topic

On Mon, Mar 9, 2015 at 10:38 AM, Phill Tomlinson <philltomlin...@fico.com>
wrote:

> Hi,
>
> I have two separate consumer groups on different JVM processes, but 
> both have the same "group.id".



You've said this twice, and I think it's creating some confusion, because the 
group.id is exactly what determines the members of a consumer group.

How many consumer threads are you providing total?  Could you provide code 
snippets to clarify how you're setting things up?

This email and any files transmitted with it are confidential, proprietary and 
intended solely for the individual or entity to whom they are addressed. If you 
have received this email in error please delete it immediately.

This email and any files transmitted with it are confidential, proprietary and 
intended solely for the individual or entity to whom they are addressed. If you 
have received this email in error please delete it immediately.

Reply via email to