Как поменять транспорт в java gRP C, как указано в документах? - PullRequest
0 голосов
/ 27 апреля 2020

При чтении java gRP C в последнем абзаце делается заявление об изменении транспорта

https://github.com/grpc/grpc-java/blob/master/README.md

Мне кажется, я не могу найти какие-либо документы по этому вопросу. Я копался в плагине gradle gRP C, который выполняет proto c с плагином proto c -gen-grp c - java. После этого я не могу найти ссылку на проект grp c - java, где вызывается плагин java. Я пытаюсь отследить точку плагина, чтобы увидеть, где меняются ohttp или netty, но это ускользает от меня.

У кого-нибудь есть указатели на моей игле в стоге сена qwest? (до сих пор похоже на иглу).

спасибо, Дин

1 Ответ

1 голос
/ 27 апреля 2020

Сгенерированный код, заглушка, не взаимодействует с транспортным уровнем и наоборот. вместо этого вам нужно использовать канальный слой, чтобы они взаимодействовали друг с другом. Каждая реализация канала в gRP C является транспортной спецификацией c, такой как NettyChannel, OkHttpChannel и InProcessChannel (или сервер на стороне сервера).

// GreeterGrpc is generated code to create a stub
YourServiceGrpc.newBlockingStub(channel);

, где канал может использовать один из этих 3 предоставленных транспортов; Netty, OkHttp, InProcess.

ManagedChannel channel =
  NettyChannelBuilder.forTarget(target).build();
//or,  OkHttpChannelBuilder.forTarget(target).build();
//or,  InProcessChannelBuilder.forTarget(target).build();

gRP C также предоставляет загрузчик услуг для предоставления предпочтительного транспорта через ManagedChannelProvider . Вы можете использовать ManagedChannelBuilder, чтобы использовать параметры среды c transport.

...