MSA여러질문

오민석·2021년 7월 26일
0

Service Mesh

Service Mesh는 서비스 간의 통신(네트워크)을 담당하는 요소입니다.

Service Mesh는 통신 및 네트워크 기능을 비즈니스 로직과 분리한 네트워크 통신 인프라. 모든 서비스의 인프라 레이어로서 서비스들 간의 통신을 처리

  • Service Discovery
  • Load balancing
  • Request Routing
  • Health check/Metric 수집

Service Discovery

컨테이너 기반 배포, scaling 등으로 ip가 동적으로 바뀐다. instance를 서비스 이름으로 service registry에 등록하여, 위치를 찾아갈 수 있게 한다

Client-side vs Server-side

Client-side는 Euerka Server고, Server-side는 로드 밸런서는 service registry로 query를 날리고 각각 요청을 가용할 수 있는 서비스 인스턴스로 라우팅 방식으로 AWS ELB가 대표적 예시이다

API Gateway

모든 request에 대한 end-point 통합하고, 인증/권한/로깅 등 추가적인 기능을 한다

Euerka와 API Gateway차이

아키텍처상 API Gateway는 마이크로서비스 그룹의 외부 경계에 위치하여 역할을 수행하지만, ServiceMesh는 경계 안에서 그 역할을 수행

Load Balancing이유

하나의 서비스를 여러개 실행하는 주 목적은 사용자 요청의 분산과 서비스 응답 속도의 향상 때문이다. apigateway나 loadbanlancer 등에서 사용자의 요청을 리소스가 충분한 서비스나 사용자와 가까운 지역의 서비스 등으로 forwarding 시킬 수 있다.

Spring Cloud란

Reactive란

유연한 시스템. 신뢰성이 있는 빠른 응답성을 제공하고 부분적 장애가 빠르게 복구되고 또한 수요증가에 탄력적으로 대응하기 위해서는 시스템 자체가 변화,확장에 언제든지 대응할 수 있는 아키텍처 적 유연성을 갖추는 것이 필수다.

아키텍처 적 유연성은 시스템을 구성하는 구성요소간의 관계들이 느슨하게 연계되어 있어 언제든지 대체되거나 추가 확장될 수 있는 특성을 말한다. 특히 클라우드 인프라 자체가 변화무쌍한 비즈니스 환경에 대응할 수 있는 유연성과 확장성이 있기 때문에 그것을 사용하는 어플리케이션 아키텍처도 반드시 이러한 언제나 쉽게 변경될 수 있는 아키텍처 적 유연성을 갖춰야한다

  • 응답성(Responsive): 사용자에게 신뢰성 있는 빠른 응답을 제공하는 것을 의미
  • 탄력성(Resilient): 장애가 발생하더라도 , 부분적으로 고장이 나더라도 전체가 고장 나지 않고 빠르게 복구하는 능력
  • 유연성(Elastic) : 시스템의 사용량에 변화가 있더라도 균일한 응답성을 제공하는 것을 의미하며, 시스템의 사용량에 비례하여 자원을 늘리거나 줄이는 능력
  • 메시지 기반(Message Driven) : 비동기 메시지 전달을 통해 위치 투명성 느슨한 결합 ,논 블로킹 통신을 지향

https://engineering-skcc.github.io/microservice%20%EA%B0%9C%EB%85%90/modern-relactive/#%EB%A6%AC%EC%97%91%ED%8B%B0%EB%B8%8C-%EC%84%A0%EC%96%B8--%ED%98%84%EB%8C%80%EC%9D%98-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%EC%97%90-%EC%9A%94%EA%B5%AC%EB%90%98%EB%8A%94-%EA%B2%83%EB%93%A4

0개의 댓글