[
https://issues.apache.org/jira/browse/CURATOR-533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jordan Zimmerman resolved CURATOR-533.
--------------------------------------
Resolution: Fixed
> Improve CURATOR-505 by making the CircuitBreaker instance shared
> ----------------------------------------------------------------
>
> Key: CURATOR-533
> URL: https://issues.apache.org/jira/browse/CURATOR-533
> Project: Apache Curator
> Issue Type: Improvement
> Components: Framework, Recipes
> Affects Versions: 4.2.0
> Reporter: Jordan Zimmerman
> Assignee: Jordan Zimmerman
> Priority: Major
> Fix For: 4.2.1
>
> Time Spent: 3h 10m
> Remaining Estimate: 0h
>
> CURATOR-505 introduced circuit breaking behavior via
> {{CircuitBreakingConnectionStateListener}} and
> {{ConnectionStateListenerDecorator}}. Elastic has been using it to success
> but reports that the implementation can be improved. The existing
> implementation uses a new {{CircuitBreaker}} for each
> {{ConnectionStateListener}} set in a Curator client. It turns out that this
> is not ideal. Instead, a shared {{CircuitBreaker}} should be used per Curator
> client.
> Unfortunately, the best way to do this is to remove the
> {{ConnectionStateListenerDecorator}} semantics and use a different mechanism.
> This Issue proposes to do this and remove
> {{ConnectionStateListenerDecorator}}. This is a breaking change but given the
> short amount of time it's been in Curator it's unlikely that it's been widely
> adopted.
> If the community considers a breaking change too harsh the older classes can
> be maintained for a while and marked as {{@Deprecated}}.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)