본문 바로가기
MSA/MSA관련기술

대용량 트래픽 고려

by 문자메일 2023. 8. 27.
  1. 코드에 중복된 부분이 없나(코드 최적화)
    1. 특히 DB 쿼리나 외부 api 호출 같은 무거운 작업이 중복된다면 줄일 수 없나
  2. 캐싱 (DB IO는 비싼 작업)
    1. 데이터 변화가 별로 없는 경우 유리, 데이터가 자주 변한다면 변한 데이터를 캐시로 올려야 하기 때문에 효과가 덜함
    2. 자주 사용하는 데이터일수록 캐싱을 하는게 유리, 캐싱 안 하면 매번 select 해야하기 떄문임
  3. DB 쿼리 최적화 되어 있는가? 안 되어 있다면 최적화 필요 (DB 쿼리 최적화)
  4. 스케일 업/아웃 에 유리한 구조
  5. 이건 대용량 트래픽과는 크게 관련 없어 보이긴 한데, 기능간의 강한 결합성
  6. 개발을 할 땐 나 혼자 request 하는 경우만 생각하는데, 여러명이(대용량트래픽) 이 API를 사용해서 이 코드가 동시에 수행될 때 문제점이 발생할 수 있지 않을까 라는걸 계속 고민해보면 조금 더 대규모 트래픽일때 문제점을 찾기가 쉽고 문제점을 찾으면 해결법은 금방금방 찾을 수 있다. 

 

 

트래픽 고려 외에 프로젝트 문제점 분석 해보고 싶다고 하면 아래 3가지 체크해보라고 한다.

1. 코드의 비 최적화

2. 수많은 DB IO

3. 기능간의 강한 결합성

 

 

 

Redis와 Local Caching 차이

  Redis Local Caching
특징 In-memory 데이터베이스이고, key-value 형태의 데이터베이스이다.
다양한 command를 제공하고 single thread이다.
서버 내에 caching 하는 방법.
서버와 라이프 사이클을 함께 돈다.
장점 여러 instance가 하나의 데이터를 공유할 수 있다. 다양한 command 지원한다. 네트워크를 타지 않기 때문에 Redis에 비해 비교적 빠름
단점 Local Caching에 비해서는 느리다. 여러 instance로 구성된 서버의 경우 캐시를 공유할 수 없다.

 

'MSA > MSA관련기술' 카테고리의 다른 글

VPC  (0) 2024.03.22
kafka(카프카)  (0) 2023.05.31
마이크로미터, 프로메테우스와 그라파나  (0) 2023.04.10
테스트 코드 커버리지 측정 (jacoco 활용)  (0) 2022.12.18
마이크로미터  (0) 2022.12.08

댓글