Open janeljs opened 2 years ago
자료구조나 객체를 저장할 수 있거나, 재구성 & 전송할 수 있는 형식으로 변환하는 과정
JSON으로 직렬화한다 = 네트워크를 통해 데이터를 전송하기 위해 범용적인 데이터 포맷으로 변환한다.
Java에서의 직렬화 = 다른 외부 자바 시스템에서 사용하기 위함
정확히 설명한 글은 찾지 못했지만, RDB에 비해 조회가 간단하다보니 레이턴시가 짧다고 하는 것 같다. NoSQL의 장점으로 낮은 지연시간을 꼽은 글들은 많았다.
대부분 서비스가 DB 읽기 연산이 많으니까 Slave DB를 여러개 두어서 읽기 연산을 처리하는데, 쓰기 연산이 많다면..?
Spring Framework의 @CacheEvict는 어떻게 동작할까?
시의성??
JS로 CSS를 컨트롤해도 CSS는 정적 컨텐츠일까..?
NoSQL은 왜 규모확장이 간편한지??
네트워크 계층이나 트랜스포트 계층의 정보를 바탕으로 로드를 분산. IP주소, 포트번호, MAC주소, 전송 프로토콜 등에 따라 트래픽을 나누고 분산처리할 수 있다. CLB(Connection Load Balancer) or SLB(Session Load Balancer) 라고 부르기도 한다. 라운드 로빈(Round Robin) : 세션을 각 서버에 순차적으로 맺어주는 방식. 단순히 순서에 따라 세션을 할당하므로 경우에 따라 경로별로 같은 처리량이 보장되지 않는다. 가중치 및 비율 할당 방식 : 서버마다 비율을 설정해두고 해당 비율만큼 세션을 맺어주는 방식 최소 연결(Least Connection)기반 : 가장 적은 세션을 가진 서버로 트래픽을 보내는 방식 (가장 선호) 응답 시간(Response Time)기반 : 가장 빠른 응답 시간을 보내는 서버로 트래픽을 우선 보내주는 방식. 각 서버들이 가용한 리소스와 성능, 그리고 처리 중인 데이터 양등이 다를 경우 적합한 방식 해시(Hash)기반 : 특정 클라이언트는 특정 서버로만 할당시키는 방식. 경로가 보장되며 접속자 수가 많을수록 분산 및 효율이 뛰어남 대역폭(Bandwidth) 기반 : 서버들과의 대역폭을 고려하여 트래픽을 분산하는 방식
ALB(Application Load Balancer) 라고 부른다. L7 위에서 동작하기 때문에 IP, Port 이외에도 URI, Payload, Http Header, Cookie 등으로 부하를 분산한다. 콘텐츠 기반 스위칭이라고도 한다.
L4 로드밸런서는 단지 부하를 분산시키는 것이라면, L7 로드 밸런서는 요청의 세부적인 사항을 두고 결제만 담당하는 서버, 회원가입만을 담당하는 서버 등으로 분리해서 가볍고 작은 단위로 여러 개의 서비스를 운영하고 요청을 각각의 서버에 분산할 수 있다. L7 로드 밸런서는 데이터를 분석해서 처리가 가능하기 때문에 악의적이거나 비정상적인 컨텐츠를 감지해 보안 지점을 구축할 수 있다.
L4 부터는 IP주소와 Port 번호를 활용하여 라우팅이 가능하여 자주 사용한다.
L7 은 소프트웨어를 사용해야 하므로 비용이 더 많이 들어 L7 수준에서의 로드 밸런싱이 필요한경우 사용하고 그게 아니면 비용이 저렴한 L4를 사용한다.
→ 주 데이터베이스가 다중화되는 것 : Multi-Master
Query Cache
라는 최적화 기능을 제공한다
[Chapter 01] 사용자 수에 따른 규모 확장성