-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allows consumer retrieve the sequence id that the producer set. #4645
Conversation
run java8 tests |
1 similar comment
run java8 tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Just a couple of comments
@@ -193,6 +195,7 @@ enum ProtocolVersion { | |||
v13 = 13; // Schema-registry : added avro schema format for json | |||
v14 = 14; // Add CommandAuthChallenge and CommandAuthResponse for mutual auth | |||
// Added Key_Shared subscription | |||
v15 = 15; // Added sequence_id for SingleMessageMetadata, retrieve the sequence id in batch message. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need to add a new version here because adding the field on the proto message will not cause any problem if the other end (broker or client) is running an older version.
In protobuf, unknown fields are automatically ignored.
We just increase the version when adding a new feature that requires a minimum version from the peers, so that we can check pre-emptively.
@@ -737,5 +737,69 @@ public void testOrderingOfKeyBasedBatchMessageContainer() throws PulsarClientExc | |||
producer.close(); | |||
} | |||
|
|||
@Test(dataProvider = "containerBuilder", timeOut = 3000) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Test(dataProvider = "containerBuilder", timeOut = 3000) | |
@Test(dataProvider = "containerBuilder") |
Timeout is already enforced by default (and using a small timeout increases the chances of flaking when running in Jenkins).
consumer.close(); | ||
} | ||
|
||
@Test(dataProvider = "containerBuilder", timeOut = 3000) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Test(dataProvider = "containerBuilder", timeOut = 3000) | |
@Test(dataProvider = "containerBuilder") |
@merlimat I have addressed your comments, please take a look. |
run java8 tests |
2 similar comments
run java8 tests |
run java8 tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
…he#4645) * Allows consumer retrieve the sequence id that the producer set. * fix comments.
* Allows consumer retrieve the sequence id that the producer set. * fix comments. (cherry picked from commit d107f67)
Fixes #4643
Motivation
Allows consumer retrieve the sequence id that the producer set while enable batch producing.
Modifications
Add sequence_id for SingleMessageMetadata in PulsarApi.proto
Verifying this change
Added new unit tests.
Does this pull request potentially affect one of the following parts:
If
yes
was chosen, please highlight the changesDocumentation