gRPC - Как сервер может быть клиентом и сервером одновременно? - PullRequest
0 голосов
/ 23 октября 2019

Я новичок в gRPC и пытаюсь кое-что сделать. Я развиваюсь в Python. У меня есть приложение, которое имеет несколько клиентов и один сервер. В моем приложении есть методы для создания, вставки, удаления и обновления данных. Вот часть моего .proto:

message Usuario{
    string usuario = 1;
}

message Procedimentos{
    string idProcedimento = 1;
    string descricaoProcedimento = 2;
    string idPaciente = 3;
    string data = 4;
}

message Pacientes {
    string idPaciente = 1;
    string nomeRN = 2;
    string maeRN = 3;
    string dataHoraNasc = 4;
    float peso = 5;
    enum Sexo{
                SEXO_DESCONHECIDO = 0;
                FEMININO = 1;
                MASCULINO = 2;
            }

    Sexo sexo = 6;
    string cidadeNasc = 7;
    int32 idadeGestacional = 8;
    string dataDiagnostico = 9;
    enum Parto{
        PARTO_DESCONHECIDO = 0;
        CESARIA = 1;
        NORMAL = 2;         
    }

    Parto tipoParto = 10;
    string descricaoUTI = 11;
    string descricaoStatus = 12;

    repeated Procedimentos procedimentos = 13;
    Medicos medico = 14;
}

message Medicos{
    string nome = 1;
    string CRM = 2;
    string dataNasc = 3;
}

service MyService{
    rpc InserirPacientes(RegistrarPacientes) returns (RegistrarPacientesResposta) {}
    rpc EditarPacientes(AtualizarPacientes) returns (AtualizarPacientesResposta) {}
    rpc ExcluirPacientes(DeletarPacientes) returns (DeletarPacientesResposta) {}
    rpc PesquisarPacientes(ConsultarPacientes) returns (ConsultarPacientesResposta) {}
    rpc ListarPacientes(TodosPacientes) returns (TodosPacientesResposta) {}

    rpc InserirProcedimentos(RegistrarProcedimentos) returns (RegistrarProcedimentosResposta) {}
    rpc EditarProcedimentos(AtualizarProcedimentos) returns (AtualizarProcedimentosResposta) {}
    rpc ExcluirProcedimentos(DeletarProcedimentos) returns (DeletarProcedimentosResposta) {}
    rpc PesquisarProcedimentos(ConsultarProcedimentos) returns (ConsultarProcedimentosResposta) {}
    rpc ListarProcedimentos(TodosProcedimentosPaciente) returns (TodosProcedimentosPacienteResposta) {}
}

Я хочу создать несколько серверов, и эти серверы должны общаться друг с другом, полностью соединенные (каждый сервер знает других), так что один сервер будет клиентом исервер одновременно. Серверу нужно иногда делать запрос, чтобы узнать, сколько серверов там в живых. Как я мог сделать это на сервере? Пожалуйста, предоставьте мне кусок кода.

Любая помощь будет отличной.

...