Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add support for multiple hosts configuration #258

Draft
wants to merge 2 commits into
base: trunk
Choose a base branch
from

Conversation

mirromutth
Copy link
Collaborator

@mirromutth mirromutth commented Mar 12, 2024

Motivation:

Support for multiple hosts configuration.

Resolves #89

It also resolves #255 because if the user uses multiple hosts we have to resolve the hostname and port ourselves

Modification:

  • Refactor host/unixSocket and add addHost to configure multiple hosts
  • Allow to use Mono.zip for user and password, because we have to receive and cache credential before we try to connect to multiple hosts
  • Add multiple hosts connection strategy
  • Add HA protocol support for multiple hosts
  • Allow to use DNS SRV records for HA protocol, like r2dbc:mysql+srv:loadbalance://my-db-1,my-db-2/test
  • Add autoReconnect/maxReconnects support, FailoverClient
  • Add failover events support and description
  • Add reconnection strategy
  • Add get back to primary host for default HA protocol, queriesBeforeRetrySource and secondsBeforeRetrySource

User can only configure one of:

  • host/port for a single host
  • addHost for multiple hosts, it will be auto-converted from ConnectionFactoryOptions.HOST
  • unixSocket for Unix Domain Socket.

Result:

Support multiple hosts configuration with HA protocol.

Support DNS SRV Records for HA protocol.

@mirromutth mirromutth added the enhancement New feature or request label Mar 12, 2024
@mirromutth mirromutth force-pushed the 89-featuresupports-multiple-host-configuration branch from 517cc4c to cfef3f1 Compare March 12, 2024 06:14
@mirromutth
Copy link
Collaborator Author

@jchrys It is going to be a big feature, so I will mark it to 1.2.0

@mirromutth mirromutth added this to the 1.2.0 milestone Mar 12, 2024
@mirromutth mirromutth force-pushed the 89-featuresupports-multiple-host-configuration branch 5 times, most recently from b3114ae to 487fdd6 Compare March 18, 2024 02:20
@mirromutth mirromutth force-pushed the 89-featuresupports-multiple-host-configuration branch from 9c49e9a to b5b6cdf Compare March 22, 2024 10:31
- Allow to use Mono for user and password
- Add multiple hosts connection strategy
- Add HA protocol support for multiple hosts
- Add DNS SRV driver for HA protocol
@mirromutth mirromutth force-pushed the 89-featuresupports-multiple-host-configuration branch from b5b6cdf to 7c9144a Compare April 5, 2024 10:10
@rahulforeleven
Copy link

Thank you for working on the multiple hosts support feature! I see this is still in draft—could you share any updates on when it might be available in an upcoming release? This functionality would be incredibly valuable for us. Thanks!"

@jchrys jchrys removed this from the 1.4.0 milestone Feb 16, 2025
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Error connecting to mysql inside the docker [feature]Supports Multiple host configuration.
3 participants