일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- 코딩테스트
- Java
- 개발자
- 백준
- JPA
- Spring
- API
- 그리디
- cleancode
- 프레임워크
- 코드
- mongoDB
- 애자일기법
- 데이터베이스
- 애자일프로그래밍
- 개발
- Baekjoon
- 읽기쉬운코드
- database
- 엘라스틱서치
- 그리디알고리즘
- 코딩
- 클린코드
- 알고리즘
- 스프링
- spring boot
- ES
- Elasticsearch
- framework
- Today
- Total
목록분산 (3)
튼튼발자 개발 성장기🏋️
로드 밸런서는 네트워크 트래픽을 여러 서버에 효율적으로 분산하여 시스템의 성능과 가용성을 향상시킬 수 있다. 구체적으로, 로드 밸런서는 다음과 같은 주요 기능을 수행한다.트래픽 분산: 클라이언트로부터 들어오는 요청을 여러 서버에 고르게 분배하여 각 서버에 과부하가 걸리지 않도록 한다. 이를 통해 시스템 전체의 처리 능력을 향상시키고, 트래픽이 급증해도 안정적인 서비스를 제공할 수 있다.장애 조치: 서버 중 하나가 장애를 일으키면, 로드 밸런서는 자동으로 해당 서버로의 트래픽을 차단하고 다른 정상적인 서버로 트래픽을 전환하여 서비스가 지속적으로 운영되도록 할 수 있다.세션 유지: 일부 로드 밸런서는 특정 클라이언트의 요청을 동일한 서버로 보내도록 세션을 유지하는 기능을 제공한다. 클라이언트로부터 들어오는 ..

앞서 언급한 분산의 포인트는 OS 캐시 활용과 인덱스(색인) 사용 그리고 확장을 고려하여 시스템을 설계하는 것이다. (MySQL은 물론이고 RDBMS는 인덱스를 생성하고 그로 인해 빠르게 데이터를 검색할 수 있는 구조가 마련되어 있다.) 보통 신규 프로젝트를 개발하게 될 때면 테이블 스키마를 그려하고 create table 쿼리로 테이블을 생성할 수 있다. 이 부분이 큰 규모일 수록 중요한 부분이 생기는데, 스키마를 얼마나 고려했는지, 분산과 확장성을 얼마나 고려했는지에 따라서 데이터가 큰 차이로 증감할 수 있다는 것을 이전 포스팅을 통해 알게되었다. 따라서 대량의 데이터가 저장되는 테이블일 수록 래코드가 최대한 작아지도록 컴팩트하게 설계되어야 한다. MySQL의 인덱스 경우에는 빠른 탐색을 위해 B트리..

지금까지 캐시가 I/O에 미치는 영향에 대해서 알아 보았다. (학교에서 language를 배울 때 캐시를 전혀 알려주지 않고 컴퓨터 개론 등의 수업에서만 캐시를 간략하게 언급하고 지나갔던 기억이 난다. 정작 현업에서는 캐시를 아주 잘 사용하고 있고 꼭 필요한 부분에서 어떤 방식으로 캐시를 사용할지에 대해 명확하게 정의하여 사용한다.) 데이터 처리 시 압축해서 저장해두면 디스크 내용을 그대로 캐싱할 수 있고, 데이터의 규모보다 물리 메모리가 더 클 때 전부 캐싱할 수 있다는 사실을 알게 되었다. 그렇다고 메모리를 대규모에 따라 계속해서 늘리기만 할 수 없다. (경제적인 비용과 밸런스 등 고려) 이럴 때 "복수 서버 확장"이 필요할 수도 있다. 어느정도 성장한 기업의 서버는 대부분 이 방안을 채택하여 사용할..