У меня есть несколько серверов 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?