API Gateway Pattern은 무엇입니까?

1961 단어 DesignPatterns
읽었다http://microservices.io/patterns/apigateway.html.나는 겸사겸사 생각을 정리하고 싶다.

마이크로 서비스 구조


API Gateway Pattern은 기본적으로 목표 서비스가 마이크로 서비스 구조로 구성된 상황에 적용될 수 있다.
서버 엔지니어로서 회원제를 구축한 EC 사이트의 상황을 고려해 보자.이 서비스는 웹 브라우저, 스마트폰 앱을 통해 접근할 예정이며, 타사에 API도 제공할 계획이다.또한 개발된 API를 다른 API에서 호출한다고 가정합니다.이때 문제로서 구조를 어떻게 구성하는가가 최선의 실천의 문제다.그 최선의 실천 중 하나는 서버 구조가 없다는 것이다.
만약에 각 기능을 구성하는 함수가 희소한 조합이고 서로 영향을 미친다면 서비스의 백엔드는 이러한 함수의 집합으로 여겨질 수 있다.마이크로 서비스 구조는 디자인 모델로'모든 단독 함수는 독립적으로 개발하고 디자인해야 한다'.또한 각 함수는 각 함수의 독립성을 높이기 위해 각각 다른 데이터베이스를 유지한다.서비스 간의 데이터 일치성은 Saga Pattern이라는 디자인 모델로 이루어진 것이다.그런 것 같아요.

그렇다면 API Gateway Pattern은 무엇일까요?


방금 제기된 EC 사이트에 대해 모든 인터페이스에서 방문한 것을 가정합니다.이 경우 웹 브라우저에서 접근할 때 서버 측에서 HTML을 되돌리기 위해 스마트폰 앱에서 접근할 때 REST API에서 되돌려받은 데이터를 바탕으로 스마트폰 앱 측에서 정보를 성형해 보여준다.마이크로 서비스 구조를 채택한 대규모 EC 사이트의 경우 많은 함수를 호출하여 정보를 얻어야 한다.이런 상황에서 클라이언트로부터 어떻게 마이크로 서비스 구조로 구성된 각 함수를 호출하는가가 가장 실천적인 문제이다.이 문제의 해결 방법 중 하나는 API Gateway Pattern이라고 할 수 있다.AWS를 사용하는 아키텍처는 다음과 같습니다.

API Gateway Pattern은 모든 인터페이스를 포함하는 클라이언트와 프로그래밍 함수 사이에 API Gateway라고 불리는 입구점을 설정하는 API의 설계 방법입니다.클라이언트 호출에서 API Gateway에 설정된 API를 통해 API Gateway가 마이크로 서비스 구조로 구성된 여러 함수에 접근할 수 있도록 합니다.API Gateway는 클라이언트에서 볼 수 있는 서버 측 API의 투명성을 높이기 위해 설정된 릴레이 장치입니다.
인터페이스마다 다른 API Gateway를 준비하는 아키텍처도 API Gateway Pattern의 변칙 모델로 존재한다.
또 API Gateway를 적용한 경우 함수에 대한 중계를 위해 다음과 같은 성질을 가진다.
  • Client-Side Discovery Pattern, Server-side Discovery Pattern 등을 사용합니다.
  • API Gateway는 일반적으로 사용자의 인증 정보를 액세스 토큰으로 저장합니다.
  • API Gateway는 Circuit Breaker라는 함수를 사용하여 함수를 호출합니다.
  • API Gateway는 API Composition Pattern에 따라 구현됩니다.
  • 이번에 설명하지 않은 패턴에 대해서는 뒷기사에서 정리하고 싶습니다.

    좋은 웹페이지 즐겨찾기