grpc health check
1837 단어 grpc
GRPC 서비스는 간단한 클라이언트에서 서버 시나리오와 다른 제어 시스템(예를 들어 부하 균형)에 대한 상태 점검 메커니즘으로 사용할 수 있다.grpc는 고급 서비스로서 다음과 같은 장점이 있다. 첫째, 그 자체가 GRPC 서비스이기 때문에 건강 검사를 하는 형식은 일반 rpc와 같다.둘째, 모든 서비스의 건강 상태와 같은 풍부한 의미를 가진다.셋째, GRPC 서비스로서 it is able reuse all the existing billing,quota infrastructure이기 때문에 서버는 운행 상황 검사 서비스의 접근을 완전히 제어할 수 있다.
서비스 정의
서버 측은 다음과 같은 proto를 정의합니다.
syntax = "proto3";
package grpc.health.v1;
message HealthCheckRequest {
string service = 1;
}
message HealthCheckResponse {
enum ServingStatus {
UNKNOWN = 0;
SERVING = 1;
NOT_SERVING = 2;
}
ServingStatus status = 1;
}
service Health {
rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse);
}
클라이언트는 Check 방법을 호출하여 서버의 운행 상황을 조회할 수 있으며, 이 rpc에 deadline을 설정해야 합니다.클라이언트는 조회할 건강 상태를 설정할 서비스 이름을 스스로 선택할 수 있습니다.제안된 서비스 이름 형식은 package_names.ServiceName(예:grpc.health.v1.Health.
서버는 모든 서비스를 수동으로 등록하고 빈 서비스 이름과 상태를 포함한 단독 상태를 설정해야 한다.받은 모든 요청에 대해 등록표에서 서비스 이름을 찾을 수 있다면 OK 상태(200)로 응답을 전송하고 status 필드를 SERVING 또는 NOT_로 설정해야 합니다SERVING.서비스 이름이 등록되지 않으면 서버가 NOT_ 로 돌아갑니다.FOUND GRPC 상태.
서버는 클라이언트가 특정 서비스에 흥미가 없을 때 빈 요청으로 서버의 상태를 조회할 수 있도록 빈 문자열을 서버의 전체 운행 상황의 키로 사용해야 한다.서버는 어댑터 없이 서비스 이름을 정확하게 일치시킬 수 있습니다.그러나 서비스 소유자는 클라이언트와 서버가 모두 확인하는 더욱 복잡한 일치 의미를 자유롭게 실현할 수 있다.
만약 rpc가 일정 시간 후에 완성되지 않으면 클라이언트는 서버를 비정상으로 성명할 수 있습니다.클라이언트는 서버가 실행 중인 서비스가 없는 상황을 처리할 수 있어야 한다.
클라이언트는 Watch 방법을 호출하여 흐름 건강 검사를 수행할 수 있습니다.서버는 현재 서비스 상태를 표시하는 메시지를 즉시 보낼 것입니다.그 다음에 서비스의 서비스 상태가 바뀌면 새로운 메시지를 보냅니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
gRPC 서비스용 RESTful API를 추가하는 데 5분go-zero는 개발자에게 뛰어난 RESTful 및 gRPC 서비스 개발 경험을 제공했지만 더 많은 기대가 생겼습니다. gRPC 및 HTTP 인터페이스를 모두 원합니다 사용자가 말하는 것을 볼 수 있습니다. User...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.