일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- log4j2
- eslint
- JavaScript
- Spring Batch
- 정규표현식
- Express
- Effective Java 3/e
- Chunk
- upgrade
- expire_logs_days
- migration
- java
- npm
- mysql 5.5
- try catch
- Regular expression
- current_date
- MySQL
- nodejs
- regex
- update
- 퀵소트
- REACTJS
- Node
- spring cloud
- git
- spring
- REACT
- Effective Java
- log_bin
- Today
- Total
내 세상
[Spring Cloud] DNS 매핑 및 읽기 요청 부하 분산 등 본문
IANA 에서 Wellknown Port로 설정된 값들을 Port로 사용하면 생략됨.
Wellknown Port와 권한 이슈로 아래 구조로 구성함
Client ----- Port 80 ----- Web Server ----- Port: 8080 ------ Spring Boot
최근에는 Nginx를 이용한 reverse proxy 설정이나 아파치의 reverse porxy를 통해서 진행한다
HTTPS 설정시 유의사항 및 인증서
Wild 카드 인증서 *.도메인.com
beta-test.mylocal.com 과 같이 -(대쉬)를 사용해서 응용할 수 있음.
Apache 연동/Nginx 연동을 하는 이유가 위의 이유 때문임.
Virtual IP와 DNS
위 그림에서 api1, api2, api3을 버전을 변경하면서 vip를 통해서 끊고, 하는 과정이 MSA라고 볼 수 있음.
예를 들어, 외부에서 select / insert / update 등 요구 사항이 온다면 해당 요청 사항을 구분해서 분산을 진행해야함.
일반적인 Service 구조는 아래와 같음.
요청이 왔을 때, 최초 요청 no hit 이기 때문에 response를 줌.
두번째에 동일 요청이 왔을 때, cache를 해서 DB 접근 없이 repsonse를 줌.
cf) caffeine 캐시 알아볼 것
위 상황에서 API Server가 여러대로 구축되었을 때, 각 서버마다 Cache가 보관되는 현상이 발생함.
이 때, 중간에 값이 변경될 수도 있음. Cache Server를 통해서 해당 현상을 조치하고자 함.
클러스터링과 레플리카
- 클러스터링: DB 4개 이면, 2개씩 묶어서 진행하는 것.
- 레플리카: 동일한 DB를 복사해서 진행하는 것. 나누는 것을 샤딩 이라고 함.
샤딩
- 데이터 위주로 나누는 것.
- 현실에서는 Clustering을 했을 때 비용 문제로 쉽지 않음.
- 참고 자료 : https://engineering.linecorp.com/ko/blog/line-manga-database/
'Technical > Spring Cloud' 카테고리의 다른 글
[Spring Batch] Tasklet, Chunk (0) | 2022.12.21 |
---|---|
[Spring Cloud] 장애 허용 시스템 구축, Circuit breaker, Spring Cloud Config, Spring Boot Admin (0) | 2022.12.20 |
[Spring Cloud] API 통합 단일 진입점 제공 (0) | 2022.12.19 |
[Spring Cloud] 12Factor, Architecture (0) | 2022.12.19 |
[Spring Cloud] 스프링 클라우드 학습 (0) | 2022.12.19 |