Listen for FailoutProperties changes and build FailoutConfigs to be used by D2Client for routing requests.
FailoutProperties represents what's stored on the ZK Cluster node and FailoutConfig represents the interface containing the final parsed information for performing the reroute.
FailoutConfigProvider is responsible for watching the ailoutProperties and translating it to FailoutConfig
A factory for creating a FailoutConfigProvider will be passed via D2ClientConfig. This factory will be used to create a concrete implementation of FailoutConfigProvider. In the implementation, it will need to handle the translation between FailoutProperties and FailoutConfig.
The FailoutConfigProvider will be exposed as part of LoadBalancerState to allow access from LoadBalancer. This is needed because D2Clients will only have access to the LoadBalancer.
NOTE: This PR will be merged to feature/service-level-failout branch and will be merged to the main branch after all service-level-failout changes are ready.
Listen for
FailoutProperties
changes and buildFailoutConfig
s to be used by D2Client for routing requests.FailoutProperties
represents what's stored on the ZK Cluster node andFailoutConfig
represents the interface containing the final parsed information for performing the reroute.FailoutConfigProvider
is responsible for watching theailoutProperties
and translating it toFailoutConfig
FailoutConfigProvider
will be passed viaD2ClientConfig
. This factory will be used to create a concrete implementation ofFailoutConfigProvider
. In the implementation, it will need to handle the translation betweenFailoutProperties
andFailoutConfig
.FailoutConfigProvider
will be exposed as part ofLoadBalancerState
to allow access fromLoadBalancer
. This is needed becauseD2Client
s will only have access to theLoadBalancer
.NOTE: This PR will be merged to
feature/service-level-failout
branch and will be merged to the main branch after all service-level-failout changes are ready.