- Monolithic 구조에서 Microservice 구조로 바뀜
- 사용자가 모든 서비스로 개별 접속 할수는 없음
- Netflix 사례
- Service를 eureka에 등록 하여 id 기반으로 endpoint 탐색이 가능하게 함
- Auto scaling에 유연하게 대처할 수 있음
- Eureka 동작 방식
- 여러 instances에 대해 loadbalancing이 가능
- Ribbon
- Zuul을 gateway로 사용하여 하나의 인입점을 만듦
- Zuul이 모든 요청을 관련 서비스에게 routing 함
- Zuul
- Feign을 사용하여 다른 서비스 호출을 쉽게 할 수 있음
- Feign
- 하위 서비스 장애 상황시 장애가 상위로 전파되는것을 방지 함
- Fallback을 통해 장애시 미리 정의된 값으로 처리 할 수 있음
- Hystrix
- Hystrix 동작 방식
- Sleuth를 사용하여 분산 환경에서 로그 추적을 쉽게 할 수 있음
- Sleuth
- Ribbon, Hystrix는 zuul에도 적용 가능
- 서비스들의 config를 통합 관리할 수 있음
- Config 변경 내용 무중단 반영 가능
- Hystrix
- SpringCloudConfig
- Zuul
- Ribbon
- Sleuth
- EFK
- RabbitMQ
- Kafka
- Spring Boot Admin
- Eureka
- SpringCloudNetflixSidecar
- Pinpoint
- Elastic APM
- Feign