[
https://issues.apache.org/jira/browse/KAFKA-14365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirk True updated KAFKA-14365:
------------------------------
Description: The {{Fetcher}} class is used internally by the
`KafkaConsumer` to fetch records from the brokers. There is ongoing work to
create a new consumer implementation with a significantly refactored threading
model. The threading refactor work requires a similarly refactored
{{{}Fetcher{}}}. In order to keep the existing users of {{Fetcher}} as
untouched as possible, this Jira proposes to refactor the {{Fetcher}} by
extracting out some common logic into {{FetcherUtils}} to allow forthcoming
implementations to use that common logic. (was: The `Fetcher` API is used
internally by the `KafkaConsumer` to fetch records from the brokers. There is
ongoing work to create a new consumer implementation with a significantly
refactored threading model. The threading refactor work requires a similarly
refactored `Fetcher`. In order to keep the existing `KafkaConsumer` as
untouched as possible, this Jira proposes to refactor the `Fetcher` so as to
allow other implementations to use the unit tests and `KafkaConsumer`.
Here are the proposed steps:
# Extract out the common APIs used by the `KafkaConsumer` and related unit
tests into a new Java interface named `Fetcher`
# Rename the existing `Fetcher` as `KafkaFetcher` (or similar)
# Refactor the `KafkaConsumer`, `FetcherTest`, and other call sites to
primarily use the new `Fetcher` interface
A future pull request will add the new `Fetcher` implementation and tie it in
to the existing `FetcherTest` tests.)
> Extract common logic from Fetcher into FetcherUtils
> ---------------------------------------------------
>
> Key: KAFKA-14365
> URL: https://issues.apache.org/jira/browse/KAFKA-14365
> Project: Kafka
> Issue Type: Improvement
> Components: clients, consumer
> Reporter: Kirk True
> Assignee: Kirk True
> Priority: Minor
>
> The {{Fetcher}} class is used internally by the `KafkaConsumer` to fetch
> records from the brokers. There is ongoing work to create a new consumer
> implementation with a significantly refactored threading model. The threading
> refactor work requires a similarly refactored {{{}Fetcher{}}}. In order to
> keep the existing users of {{Fetcher}} as untouched as possible, this Jira
> proposes to refactor the {{Fetcher}} by extracting out some common logic into
> {{FetcherUtils}} to allow forthcoming implementations to use that common
> logic.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)