Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Must use Advanced search options to go back in history as discussion has not been active since October 2018

JIRA: KAFKA-6690

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

From the reporter of KAFKA-6690:

We use Kafka to process the asynchronous events of our Document Management System such as preview generation, indexing for search etc.
The traffic gets generated via Web and Desktop Sync application. In such cases, we had to prioritize the traffic from web and
consume them first.
But this might lead to the starvation of events from sync if the consumer speed is slow and the event rate is high from web.
A solution to handle the starvation with a timeout after which the events are consumed normally for a specified period of
time would be great and help us use our resources effectively. 

Public Interfaces

The addition of new subscribe API that allows caller to prioritize topics.  New class TopicPriority constructor

...

where priority is a positive integer.  

This new This subscribe method takes a list of TopicPriority as a parameter.  Starvation of lower priority topics is not addressed in this KIP and a possible consequence of invoking the API. 

Code Block
public void subscribe(java.util.List<TopicPriority> topicPriorities);

...

Note that the issue of starvation of lower priority topics has been discussed in the most recent thread.  The above API will be extended to handle starvation.  One idea is to check the delta between the oldest messages in the different topics.  The consumer would then revert to using no priorities when the delta reaches a max threshold for the delta, and then re-enable prioritization after achieving a min thresholdand is intended by design

Compatibility, Deprecation, and Migration Plan

...