# MSA 학습
- MSA (Micro Service Architecture)
- SOA (Service Oriented Architecture)
- ESB (Enterprise Service Bus)
## Service Mesh
: 마이크로 서비스간 직접통신을 하지 않기 위해서
> Netfilx (Hystrix(서킷 브레이커), Eureka(디스커버리), Turbine(통합 모니터링))
### 서킷 브레이커 패턴
(마이크로 서비스간 장애 전파를 막기위해서) 요청 받는 쪽 서비스가 문제가 생겼을 경우 중간에 서킷 브레이커가 더이상 요청을 기다리지 않도록 하고 룰에따른 Fall-back 메세지를 보냄.
#### 구현 방법
- 소프트웨어적 해결: (넷플릭스 Hystrix: Spring 라이브러리) 코드수정, 프로그램 언어 종속성의 단점 있음
- **인프라적 해결**: proxy server에서 처리함 (envoy.io, ngnix)
### 서비스 디스커버리 패턴
동적 주소 찾기
- Client side discovery: 서비스가 Service registry에 직접 물어봄
- Server side discovery: Load Balancer가 그 역할을 대신함
#### Service registry
ZooKeeper, etcd / Eureka
### Sidecar 패턴
loging, security, platform, discovery, routing(proxy) 의 기능을 공통으로 분리
#### Istio
쿠버네티스 기반 서비스 메쉬, 개발언어 무관
- 부하분산 트래픽 관리: Envoy로 프록시, Pilot을 통해서 디스커버리, 로드밸런싱, 서킷브레이커
- 보안: TLS(Transport)
- 모니터링: Heapster, Prometheus, StackDriver, Datadog, Grafana(각 서비스의 응답시간, 처리량), Jaeger(분산 트랜잭션 구간별 응답시간 모니터링)
댓글
댓글 쓰기