315157973 opened a new pull request #7518:
URL: https://github.com/apache/pulsar/pull/7518


   
   
   Fixes #<xyz>
   
   *(or if this PR is one task of a github issue, please add `Master Issue: 
#<xyz>` to link to the master issue.)*
   
   Master Issue: #7265
   
   ### Motivation
   Support partitioned topics in the Reader
   
   ### Modifications
   class relationship:
   PulsarClientImpl -> MultiTopicsReaderImpl -> MultiTopicsConsumerImpl -> 
ConsumerImpl
   
   PulsarClientImpl support build MultiTopicsReader
   MultiTopicsReader wraps one MultiTopicsConsumerImpl 
   MultiTopicsConsumerImpl contains multiple consumerImpl
   
   Make MultiTopicsConsumerImpl support seek by messageId
   
   seek by time:
   All consumerImpl seek by time, Reader can get all the messages returned by 
each partition
   
   seek by message:
   1)When seek by latest/earliest,all partitions seek by latest/earliest,Reader 
can get all the messages returned by each partition
   2)When the messageId contains explicit partition information, it will only 
receive messages from this partition, and will not receive messages from other 
partitions.To avoid other partitions returning messages in inclusive mode, I 
make other consumer seek to latest and add a ignoredConsumersSet to ignore 
messages from other partitions .
   
   ### Verifying this change
   unit tests:
   TopicReaderTest
   MultiTopicsReaderTest
   
   ### Does this pull request potentially affect one of the following parts:
   
   *If `yes` was chosen, please highlight the changes*
   
     - Dependencies (does it add or upgrade a dependency): (yes / no)
     - The public API: (yes / no)
     - The schema: (yes / no / don't know)
     - The default values of configurations: (yes / no)
     - The wire protocol: (yes / no)
     - The rest endpoints: (yes / no)
     - The admin cli options: (yes / no)
     - Anything that affects deployment: (yes / no / don't know)
   
   ### Documentation
   
     - Does this pull request introduce a new feature? (yes / no)
     - If yes, how is the feature documented? (not applicable / docs / JavaDocs 
/ not documented)
     - If a feature is not applicable for documentation, explain why?
     - If a feature is not documented yet in this PR, please create a followup 
issue for adding the documentation
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to