Did you looked at [1] Netflix Hystrix <https://github.com/Netflix/Hystrix> is an incredibly useful library for writing code that invokes remote services. Hystrix times out calls that exceed the specified threshold. It implements a *circuit breaker* pattern, which stops the client from waiting needlessly for an unresponsive service. If the error rate for a service exceeds a specified threshold, Hystrix trips the circuit breaker and all requests will fail immediately for a specified period of time. Hystrix lets you define a fallback action when a request fails, such as reading from a cache or returning a default value. If you are using the JVM you should definitely consider using Hystrix.
[1] https://github.com/Netflix/Hystrix On Fri, Mar 11, 2016 at 2:42 PM, Aruna Karunarathna <[email protected]> wrote: > Hi Devs, > > *Scenario* > > The deployed services in a MSF4J may fail to serve the requests due to > various factors. e.g, > 1. Less resources in the server. > 2. High Load in the server > 3, Some services take more time to respond etc. > > In this kind of a situation, if the server is getting requests though > there is no resources to serve those requests, and eventually the server > will get unusable. > > *Solution* > > The Circuit Breaker design pattern can save the server from above > scenarios, The typical design can be illustrated as in the following > diagram. > > > So as in the above diagram, when number of failures of a particular > resource exceeds the Max Failure Count, then the state of that resource is > moved to the open state with a timeout value (Trip Breaker). At this point > the requests coming to the server is routed back without passing the > internal to process further. > > After the timeout has reached, the state is moved to Half-Open state, and > if the consecutive request pass to the server to process (Attempt Reset), > if success then close the circuit (Reset Breaker), If fail then again move > the state to the Open with a timeout value (Trip Breaker). > > Any thoughts, suggestions regarding the above approach? > > References > [1]. > http://www.javaworld.com/article/2824163/application-performance/stability-patterns-applied-in-a-restful-architecture.html?page=2 > [2]. > http://ssagara.blogspot.com/2015/05/timeout-and-circuit-breaker-pattern-in.html > [3]. https://pragprog.com/book/mnee/release-it > > > Regards, > Aruna > -- > > *Aruna Sujith Karunarathna * > WSO2, Inc | lean. enterprise. middleware. > #20, Palm Grove, Colombo 03, Sri Lanka > Mobile: +94 71 9040362 | Work: +94 112145345 > Email: [email protected] | Web: www.wso2.com > > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- Lakmal Warusawithana Director - Cloud Architecture; WSO2 Inc. Mobile : +94714289692 Blog : http://lakmalsview.blogspot.com/
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
