Description
We will use this JIRA to track the list of issues to resolve to get a working new consumer client. The consumer client can work in phases -
1. Add new consumer APIs and configs
2. Refactor Sender. We will need to use some common APIs from Sender.java (https://issues.apache.org/jira/browse/KAFKA-1316)
3. Add metadata fetch and refresh functionality to the consumer (This will require https://issues.apache.org/jira/browse/KAFKA-1316)
4. Add functionality to support subscribe(TopicPartition...partitions). This will add SimpleConsumer functionality to the new consumer. This does not include any group management related work.
5. Add ability to commit offsets to Kafka. This will include adding functionality to the commit()/commitAsync()/committed() APIs. This still does not include any group management related work.
6. Add functionality to the offsetsBeforeTime() API.
7. Add consumer co-ordinator election to the server. This will only add a new module for the consumer co-ordinator, but not necessarily all the logic to do group management.
At this point, we will have a fully functional standalone consumer and a server side co-ordinator module. This will be a good time to start adding group management functionality to the server and consumer.
8. Add failure detection capability to the consumer when group management is used. This will not include any rebalancing logic, just the ability to detect failures using session.timeout.ms.
9. Add rebalancing logic to the server and consumer. This will be a tricky and potentially large change since it will involve implementing the group management protocol.
10. Add system tests for the new consumer
11. Add metrics
12. Convert mirror maker to use the new consumer.
13. Convert perf test to use the new consumer
14. Performance testing and analysis.
15. Review and fine tune log4j logging
Attachments
Issue Links
- duplicates
-
KAFKA-360 Add ability to disable rebalancing in ZooKeeper consumer
- Resolved
-
KAFKA-361 Add ability to get offsets from ZK-based consumer
- Resolved
-
KAFKA-389 Add a consumer client that connects to the co-ordinator for rebalancing
- Resolved
-
KAFKA-390 Implement the rebalancing protocol between co-ordinator and consumer
- Resolved
-
KAFKA-364 Consumer re-design
- Resolved
-
KAFKA-387 Add a centralized co-ordinator for consumer rebalancing
- Resolved
- incorporates
-
KAFKA-1655 Allow high performance SimpleConsumer use cases to still work with new Kafka 0.9 consumer APIs
- Resolved
- is duplicated by
-
KAFKA-167 Move partition assignment to the broker
- Resolved
- requires
-
KAFKA-2387 Improve KafkaConsumer API
- Open