Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Java Wrapper Class
- github action codedeploy
- list remove
- image slider
- Java
- github ec2 deploy
- SpringBootApplication
- java CompletableFuture
- github action
- AliasFor
- vanilla js image slider
- javascript image slider
- java 비동기처리
- equals override
- kotest
- 코드포스
- java stream api
- java hashCode
- hashcode override
- github CI/CD
- equals
- c++ 빌드
- AWS Codedeploy
- github CI
- lombok Builder
- stream groupingby
- Github action deploy
- Spring Aspect
- github deploy
- Java lombok
Archives
- Today
- Total
기록창고
circuit이 없을때 과 timeout 이 긴 경우 본문
회사에서 장애가 낫다
A, B, C, D 서버가 있다고 가정한다
C -> B -> A
D -> B -> A
B 서버 입장에서는 꼭 A 의 데이터가 필요하지않는 경우였다. 필요는 하지만, 없어도 사용자에겐 문제가 없는 경우
C, D 는 꼭 B 가 필요하다.
위처럼 요청을 보내는데, A 서비스에 장애가 생겼다..!
그래서 A 의 응답이 너무 늦어졋다..
C, D 에서 요청을 계속 보내고있는데, B 는 A 의 응답을 기다리고 있어 점점 쓰레드는 부족해져다가 결국 503 이 발생했다.
결국 C, D 도 장애로 이어진것
방지책
서킷브레이커를 이용하여, A 서버로 보낸 요청이 응답이 늦어나, 안온경우가 일정시간 누적이 되면
서킷 활성화하여, 모든 요청을 서킷이 응답하게 만들고, B 에서는 그의 응답에 대한 대응을 해놓는다
또는
타임아웃을 짧게 가져가는 방법이 있다. 위의 방법과 비슷하나, n 초 이상 응답이 없을 시 대응 해놓는다
위의 경우가 MSA 의 단점(?)은 아니지만, 무서운 경험이였다.
다른 서비스에 보내는 요청이 죽는 경우도 생각하면서 코드를 작성해야겠다...
'MSA' 카테고리의 다른 글
@Transactional (0) | 2021.09.19 |
---|---|
DB Connection 이 부족한 경우 (0) | 2021.09.12 |
Comments