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]