IT
SQL 오류 [ORA-01427]
- 주로 서브쿼리에서 1건을 초과한 레코드가 나올 때 발생하는 에러
- 오류를 해결하기 위해 오류가 발생한 서브쿼리를 찾아야 함(하위 서브쿼리로 이동하며 오류나는 쿼리 찾기)
- 문제의 원인인 서브쿼리 결과가 1건을 초과하지 않도록 쿼리 수정
TMI) 쿼리의 FROM절이 데이터의 이력을 관리하는 뷰를 사용하여 동일한 펀드가 서브쿼리에서 두 번 잡혀 오류가 발생했었음
로드 밸런싱(Load Balancing)
웹 사용이 늘어감에 따라 1대의 서버로 모든 트래픽을 감당하기엔 턱없이 부족하다.
대응 방안으로 하드웨어의 성능을 올리거나(Scale-up) 여러대의 서버가 나눠서 일하도록 만드는 것(Scale-out)이 있다.
하드웨어 성능 향상 비용이 더욱 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-out이 좀 더 효과적이다. 이 때 여러 서버에게 균등하게 트래픽을 분산시키는 것이 바로 로드 밸런싱이다.
- 둘 이상의 CPU 또는 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것
- 분산식 웹 서비스로 여러 서버에 부하(Load)를 나누어 주는 역할
- 클라이언트와 서버 사이에 Load Balancer를 두고 부하가 일어나지 않도록 여러 서버에 분산시킴
- 규모에 따라 웹 서버를 추가로 증설하면서 로드 밸런서로 관리하여 웹 서버 부하해결 가능
로드 밸런서가 서버를 선택하는 방식은 아래와 같다.
- 라운드 로빈(Round Robin) : CPU 스케줄링의 라운드 로빈 방식 활용
- Least Connections : 연결 개수가 가장 적은 서버 선택(트래픽으로 인해 세션이 길어지는 경우 권장함)
- Source : 사용자 IP를 해싱하여 분배(특정 사용자가 항상 같은 서버로 연결되는 것을 보장해줌)
서버를 분배하는 로드 밸런서의 장애를 대비하기 위해 상태를 이중화한다.
- Active 상태
- Passive 상태
참고 : https://github.com/gyoogle/tech-interview-for-developer
'TIL' 카테고리의 다른 글
[TIL] 0627(월) (0) | 2022.06.28 |
---|---|
[TIL] 0623(목) (0) | 2022.06.23 |
[TIL] 0622(수) (0) | 2022.06.22 |
댓글