Comments (1)
Based on my observation, when a system faces some percentages of error, with help of the retry function the cluster can recover. And from the client's point of view, it works normally.
From Istio Retries documentation: Default retry is hardcoded and its value is equal to 2. It means any circumstance, it will try two times at least.
From this experiment, We simulate the situation where the db microservice faces some problem and rejects some percentage of requests by error code 500. The fault injection has been done with help of istio. On the other hand, we tried to use the retry function to recover the system.
It is clear that the retry function can help to recover the system, but the efficiency of the retry function depends on the percentage of failure and traffic of the network. The details exploration has been done and reported in this report (#29).
but these retries can make problems of congestion inside the cluster which can be controlled by the circuit breaker. (#33).
Interesting facts, regarding the number of retries:
I have injected 100% fault in db so I expected to see that s1 retry to send a request based on the number of retries. But my observation was different, In the beginning, there is no retry configuration, but istio as a default configuration retry to send the failed request again, because of that failed requests are 20, two times of origin request which was 10. As you can see in the diagram the number of requests is not following the number of retries. It seems, that there are mechanisms that prevent the retry function to go linear when the number of retries increases.
from term-project-cloudriven.
Related Issues (20)
- Testing new endpoints for s3 service in postman
- Update README file HOT 1
- Create "playlist.csv" HOT 1
- Create Scripts to run Gatling containers HOT 1
- Create a playlist table in Dynamodb HOT 2
- Understand Service Mesh (Istio) via Guide 3 HOT 1
- Scale the services, test failure of node and recovery mechanisms HOT 3
- Add automation
- Renamed issue19-s3 branch name to dev HOT 2
- Add and test circuit breaker HOT 1
- Fix issue with the AWS DynamoDB tables HOT 1
- S2 Music service cleanup
- API setup for microservices
- Fix the loader issue HOT 1
- Create pcli for the new service HOT 2
- S3 error with listing all playlists HOT 2
- S3 error with creating a playlist HOT 1
- Perform Gatling Scaling Test - Load Evenly Distributed
- Perform Gatling Scaling Test - Stress Test
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from term-project-cloudriven.