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 |
Tags
- 재정의
- redis
- SQL
- Spring
- select_type
- 필드 주입
- KEVISS
- java
- MSA
- Test
- 조합
- hashcode
- jpa
- 열 속성
- DI
- AOP
- lambda
- stream
- docker
- jwt
- StringBuilder
- 테스트 코드
- VUE
- 생성자 주입
- 바이너리 카운팅
- 인덱스
- static
- cache
- equals
- DDL
Archives
- Today
- Total
백엔드 개발자 블로그
헬스 체크 본문
[참고](https://toss.tech/article/how-to-work-health-check-in-spring-boot-actuator)
헬스 체크란?
정상적으로 서비스가 가능한 서버에만 트래픽을 보내서 서비스의 고가용성을 확보하기 위해서 체크하는 것
Spring Boot Actuator
- 의존성 추가
- application.yaml로 퍼블릭하게 접근 가능하게 하기
- HealthEndpointSupport 클래스의 getAggregateContribution 메서드
- 각 HealthContributor를 순회하면서 헬스 체크
- HealthEndpointSupport 클래스의 getCompositeHealth 메서드
- 각 HealthIndicator로부터 수집한 상태를 바탕으로 현재 서버의 상태를 진단
- SimpleStatusAggregator의 getAggregateStatus 메서드
- 각 상태를 수집해서 하나의 Status 반환(StatusComparator 사용)
- Status 순서 설정 가능
- Down을 반환한 HealthIndicator 하나라도 있다면 서버를 Down으로 생각해서 503 반환
주의점
의도치 않은 장애 발생
- 상황
- 서비스 DB + 로그 DB by 비동기 처리
- 서비스가 정상적이라도 비동기 처리 부분에서 하나라도 장애가 발생하면 서버 장애라고 판단
- 해결
- Spring Boot Actuator 대신 직접 헬스 체크 API 구현하기
- 헬스 체크에 영향을 끼치지 않길 희망하는 것들을 비활성화 하기
- 문제가 되는 HealthIndicator 빈을 직접 생성해서 Auto Configuration 오버라이딩 하기
트러블 슈팅의 지연
- 상황
- 외부 의존성이 있는 ES만 죽었는데, 죽었다고 판단함
- 격리했다고 생각한 시스템에만 문제가 있는 경우 트러블 슈팅이 지연될 수 있음
'테크 블로그 리뷰' 카테고리의 다른 글
대용량 트래픽 처리 전략 (0) | 2024.02.07 |
---|---|
MSA로 전환2 (0) | 2024.02.07 |
대규모 로그 처리 by Elasticsearch 클러스터 (1) | 2024.01.07 |
Gateway (0) | 2024.01.07 |
MSA로 전환1 (1) | 2024.01.07 |