GraphQL의 모니터링 기능을 사용하면 문제로 인해 중요한 마이크로 서비스가 중단되기 전에 문제를 조기에 감지 할 수 있습니다.
https://opensource.com/article/20/8/microservices-graphql
마이크로 서비스와 GraphQL은 빵과 버터와 같은 훌륭한 조합입니다. 그들은 둘 다 스스로 훌륭하고 함께 더 좋습니다. 중요한 서비스를 실행하기 때문에 마이크로 서비스의 상태를 아는 것이 중요합니다. 문제를 진단하기 전에 중요한 문제가 발생할 때까지 기다리는 것은 어리석은 일입니다. GraphQL이 문제를 조기에 감지하는 데 많은 노력이 필요하지 않습니다.
마이크로 서비스의 GraphQL
일상적인 상태 확인을 통해 서비스를 보고 테스트하여 비즈니스, 고객 또는 프로젝트에 영향을 미치기 전에 문제에 대한 조기 알림을 받을 수 있습니다. 말하기는 쉽지만 상태 확인을 한다는 것이 실제로 무엇을 의미합니까?
서비스 점검을 설계 할 때 고려하는 요소는 다음과 같습니다.
서버 상태 확인 요구 사항 :
마이크로 서비스의 서비스 상태
서버 상태 확인 방법
이론적으로 확인할 수 있는 항목이 거의 무한하기 때문에 상태 확인을 작성하는 것은 까다로울 수 있습니다. 저는 작게 시작하고 가장 기본적인 테스트 인 핑 테스트를 실행하는 것을 좋아합니다.
이것은 단순히 응용 프로그램을 실행하는 서버를 사용할 수 있는지 여부를 테스트합니다. 그런 다음 가장 중요한 서버 요소에 대해 생각하면서 특정 문제를 평가하기 위해 테스트를 진행합니다. 갑자기 사라지면 재앙이 될 일을 생각합니다.
GraphQL로 상태 확인
일반적인 REST 기반 마이크로 서비스에서는 상태 확인 기능을 처음부터 빌드해야 합니다. 시간 집약적 인 프로세스이지만 GraphQL에서는 걱정할 필요가 없습니다.
웹 사이트에 따르면 :
"GraphQL은 API를 위한 쿼리 언어이자 기존 데이터로 이러한 쿼리를 수행하기 위한 런타임입니다. GraphQL은 API의 데이터에 대한 완전하고 이해하기 쉬운 설명을 제공하고 클라이언트가 필요한 것을 정확히 요청할 수 있는 권한을 제공합니다. 시간이 지남에 따라 API를 더욱 쉽게 발전시키고 강력한 개발자 도구를 사용할 수 있습니다. "
GraphQL 마이크로 서비스를 부트 스트랩 하면 마이크로 서비스의 상태를 모니터링 하는 프로비저닝도 제공됩니다. 이것은 숨겨진 보석입니다.
위에서 언급 했듯이 GraphQL 엔드 포인트를 사용하여 ping 검사 뿐만 아니라 API 테스트를 수행 할 수 있습니다.
Apollo GraphQL Server는 마이크로 서비스 및 서버 상태에 대한 정보를 반환하는 기본 엔드 포인트를 제공합니다. 그다지 복잡하지 않습니다. 서버가 실행 중이면 상태 코드 200을 반환합니다.
기본 엔드 포인트는 <server-host> /. well-known / apollo / server-health입니다.
GraphQL로 상태 확인
고급 상태 확인
경우에 따라 기본 상태 확인만으로 시스템의 무결성을 보장하지 못할 수 있습니다. 예를 들어, 밀접하게 결합 된 시스템은 시스템의 상태를 보장하기 위해 더 많은 비즈니스 로직이 필요합니다.
Apollo GraphQL은 서버를 정의하는 동안 onHealthCheck 함수를 선언하여 이 사용 사례를 관리하기에 충분히 효율적입니다.
* Defining the Apollo Server */
const apollo = new ApolloServer({
playground: process.env.NODE_ENV !== 'production',
typeDefs: gqlSchema,
resolvers: resolver,
onHealthCheck: () => {
return new Promise((resolve, reject) => {
// Replace the `true` in this conditional with more specific checks!
if (true) {
resolve();
} else {
reject();
}
});
}
});
onHealthCheck 메서드를 정의하면 서버가 준비되었는지 확인하고 오류가 있으면 거부하는 promise를 반환합니다.
GraphQL을 사용하면 API 모니터링이 더 쉬워집니다. 또한 서버 인프라에 사용하면 확장 성이 높아집니다. GraphQL을 새 인프라 정의로 채택하려면 내 GitHub 저장소에서 예제 코드 및 구성을 참조하십시오.
등록된 댓글이 없습니다.