Есть ли возможность импортировать сервисы из других протос файлов? - PullRequest
0 голосов
/ 14 октября 2019

Иногда наш сервер grpc выходил из строя / не работал из-за того, что наш клиент не мог сделать запрос к серверу grpc, в таких случаях мы планируем написать проверку работоспособности в общем виде. У нас достаточно прототипа буферного файла, допустим,

a.proto

 syntax = "proto3"
 package com.a

 message request{
      string name = 1;
 }

 message response{
      string name = 1;
 }


 service testService{
      rpc check(request) returns (response)
 }

b.proto

 syntax = "proto3"
 package com.a

 message request1{
      string name = 1;
 }

 message response1{
      string name = 1;
 }


 service testService{
      rpc check(request1) returns (response1)
 }

c.proto

syntax = "proto3"
 package com.a

 message request2{
      string name = 1;
 }

 message response2{
      string name = 1;
 }


 service testService{
      rpc check(request2) returns (response2)
 }

Есть ли какой-либо способ выписать общую проверку работоспособности для вышеуказанных трех служб. Ниже по ссылке было полезно написать проверку работоспособности для одного прото файла. https://github.com/grpc/grpc/blob/master/doc/health-checking.md

Но нам нужно написать его в общем виде, например, создать один протокол работоспособности и внедрить его во все файлы протоколов grpc-серверов. Здесь проблема в том, что мы можем импортировать сообщение , но не метод обслуживания. . Если вы, ребята, сталкивались с проверкой здоровья, поделитесь своими комментариями.

1 Ответ

0 голосов
/ 18 октября 2019

Я не совсем понимаю, зачем вам куда-то импортировать службу здравоохранения, вы должны внедрить эту службу и добавить ее на каждый из ваших серверов.

Другой вариант - использовать GRPC Services зависимость, которая обеспечивает реализацию службы здравоохранения ( HealthServiceImpl ), описанной в вашей ссылке . Вы должны создать экземпляр HealthStatusManager , который управляет службой проверки работоспособности. Затем добавьте сервис, полученный методом #getHealthService(), на ваш сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...