Skip to content

Single Active Consumer for streams #3753

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

Closed
acogoluegnes opened this issue Nov 17, 2021 · 0 comments
Closed

Single Active Consumer for streams #3753

acogoluegnes opened this issue Nov 17, 2021 · 0 comments
Assignees

Comments

@acogoluegnes
Copy link
Contributor

No description provided.

@acogoluegnes acogoluegnes self-assigned this Nov 17, 2021
acogoluegnes added a commit that referenced this issue Nov 17, 2021
WIP. Uses a simple in-memory coordinator for now.
No failover yet.

References #3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 17, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 18, 2021
acogoluegnes added a commit that referenced this issue Nov 18, 2021
When consumers unsubscribe normally.

References #3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 18, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 18, 2021
Instead of client-side in-memory tracking, because it's more realistic.

References rabbitmq/rabbitmq-server#3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 19, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 19, 2021
acogoluegnes added a commit that referenced this issue Nov 22, 2021
acogoluegnes added a commit that referenced this issue Nov 23, 2021
acogoluegnes added a commit that referenced this issue Nov 24, 2021
acogoluegnes added a commit that referenced this issue Nov 24, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 24, 2021
acogoluegnes added a commit that referenced this issue Nov 25, 2021
Start index from the end because of lists:foldr.
Make sure to notify only the passive newcomer when there's
no change in SAC.

References #3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
Instead of client-side in-memory tracking, because it's more realistic.

References rabbitmq/rabbitmq-server#3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Nov 25, 2021
acogoluegnes added a commit that referenced this issue Nov 26, 2021
Make sure to notify former active when unsubscription
triggers rebalancing.

References #3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Jul 13, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Jul 13, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Jul 13, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Jul 13, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Jul 13, 2022
The (de)activation protocol changed a bit internally. New consumers
assume they are passive by default, until they are activated
(no passive update notification if the consumer was not active
previously).

References #46, rabbitmq/rabbitmq-server#3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Jul 13, 2022
The stream SAC coordinator monitors connection processes
and should send consumer update accordingly when connections
die.

References #46, rabbitmq/rabbitmq-server#3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Jul 13, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Jul 13, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Jul 13, 2022
Otherwise the expected response code may not be received
because there's no enough concurrency. This way an error
path is exercised on the broker side.

References #46, rabbitmq/rabbitmq-server#3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
References rabbitmq/rabbitmq-server#3753

Conflicts:
	src/main/java/com/rabbitmq/stream/Constants.java
	src/main/java/com/rabbitmq/stream/impl/Client.java
	src/main/java/com/rabbitmq/stream/impl/ServerFrameHandler.java
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
References rabbitmq/rabbitmq-server#3753

Conflicts:
	src/test/java/com/rabbitmq/stream/impl/SingleActiveConsumerTest.java
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
Instead of client-side in-memory tracking, because it's more realistic.

References rabbitmq/rabbitmq-server#3753

Conflicts:
	src/test/java/com/rabbitmq/stream/impl/SingleActiveConsumerTest.java
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
WIP.

References rabbitmq/rabbitmq-server#3753

Conflicts:
	src/main/java/com/rabbitmq/stream/impl/OffsetTrackingCoordinator.java
	src/main/java/com/rabbitmq/stream/impl/StreamConsumer.java

Conflicts:
	src/main/java/com/rabbitmq/stream/impl/StreamConsumer.java

Conflicts:
	src/test/java/com/rabbitmq/stream/impl/SingleActiveConsumerTest.java
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
References rabbitmq/rabbitmq-server#3753

Conflicts:
	src/main/java/com/rabbitmq/stream/impl/OffsetTrackingCoordinator.java
	src/main/java/com/rabbitmq/stream/impl/StreamConsumer.java
	src/main/java/com/rabbitmq/stream/impl/Utils.java

Conflicts:
	src/main/java/com/rabbitmq/stream/impl/ConsumersCoordinator.java
	src/main/java/com/rabbitmq/stream/impl/StreamConsumer.java

Conflicts:
	src/main/java/com/rabbitmq/stream/MessageHandler.java
	src/main/java/com/rabbitmq/stream/impl/ConsumersCoordinator.java
	src/main/java/com/rabbitmq/stream/impl/Utils.java
	src/test/java/com/rabbitmq/stream/impl/OffsetTrackingCoordinatorTest.java
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
Mainly queryOffset returning QueryOffsetResponse instead of
just a long.

References #46, rabbitmq/rabbitmq-server#3753

Conflicts:
	src/main/java/com/rabbitmq/stream/impl/OffsetTrackingCoordinator.java
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
Requires to add Consumer#storedOffset() to let the user
make sure the stored offset request made it to the
broker before closing the consumer.

References #46, rabbitmq/rabbitmq-server#3753

Conflicts:
	src/main/java/com/rabbitmq/stream/impl/OffsetTrackingCoordinator.java
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
The (de)activation protocol changed a bit internally. New consumers
assume they are passive by default, until they are activated
(no passive update notification if the consumer was not active
previously).

References #46, rabbitmq/rabbitmq-server#3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
The stream SAC coordinator monitors connection processes
and should send consumer update accordingly when connections
die.

References #46, rabbitmq/rabbitmq-server#3753
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
acogoluegnes added a commit to rabbitmq/rabbitmq-stream-java-client that referenced this issue Aug 10, 2022
Otherwise the expected response code may not be received
because there's no enough concurrency. This way an error
path is exercised on the broker side.

References #46, rabbitmq/rabbitmq-server#3753
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant