Когда создавать клиент gRPC при объединении в цепочку нескольких вызовов gRPC - PullRequest
0 голосов
/ 05 октября 2019

У меня есть несколько серверов gRPC, и я хотел бы объединить некоторые вызовы, чтобы поток стал примерно таким:

Client X calls Server A
  └──> Server A
           ... some processing ... < 1 >
           calls Server B
             └──> Server B
                      ... some processing ...
                      returns Result B
           receives Result B
           ... some more processing ...
           returns Result A

Чтобы это работало, я создал gRPCклиент для соединения с сервером B каждый раз, когда вызывается RPC сервера A (показано с < 1 > выше). Я нашел похожий вопрос, заданный здесь , и я понимаю, что этот подход не подходит для долгоживущего соединения, чтобы использовать обсуждаемую природу здесь .

ЧтоЯ не совсем понял из приведенных выше двух ссылок: , когда я должен был создать клиент gRPC . Если бы мне пришлось еще больше связать это с сервером B, вызывающим сервер C и т. Д., Нужно ли каждому серверу создавать соединение во время запуска процесса? Вводит ли это зависимость запуска каждого сервера?

Кроме того, в качестве основы я подумал, что использование контекста обеспечивает хорошее сцепление и сохраняет контроль над этими удаленными вызовами. Это правильное использование gPRC?

1 Ответ

1 голос
/ 15 октября 2019

Мы улучшили GoDoc для ClientConn. См .: https://github.com/grpc/grpc-go/pull/3096.

Дайте нам знать, что вы думаете. Спасибо.

...