Allow users to enable read-write splitting in failover mode.#3482
Merged
Conversation
Member
|
@cxljs I am not sure if |
Contributor
Author
|
From the code, ReadOnly seems to work fine. I'll add tests later. |
…rClusterClient Signed-off-by: Xiaolong Chen <fukua95@gmail.com>
82b3deb to
0ed1576
Compare
Member
|
@cxljs reminder for tests here, if we can merge this today we can release tomorrow / on monday |
Contributor
Author
|
During my testing, I confirmed through the cluster logs that the ReadOnly option takes effect. However, the ClusterClient does not provide a corresponding API, so I couldn't write a test for it. Can I add a public API for test? Or do you have any idea? @ndyakov |
Contributor
Author
|
@ndyakov Sorry, I didn't explain the purpose of this PR in detail before. I've now added more information. |
ndyakov
approved these changes
Sep 1, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently, when users use failover mode and want to implement read-write splitting, a close alternative is to use NewFailoverClusterClient with RouteRandom=true, but this is not the best solution.
Two simple solutions:
When using NewFailoverClient(), ReplicaOnly=true means allowing all commands to be routed to replicas.
When using NewFailoverClusterClient(), ReplicaOnly behaves the same as ClusterOption.ReadOnly.
@ndyakov @htemelski-redis @elena-kolevska Which solution do you think is better, or do you have another alternative?