#java #.net #grpc #grpc-java
Вопрос:
Я создаю клиент для своего GRPC api на Java и .net. Я хочу понять, есть ли какое-либо сопоставление между библиотеками java и .net. Я вижу, что библиотеки Google protobuf совпадают между миром .net и java. Например, версия 3.19.x является одной из самых последних как в java, так и в мире .net. https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java amp; https://www.nuget.org/packages/Google .Protobuf /
Существует ли аналогичная взаимосвязь, о которой мне нужно знать, когда речь заходит о используемых библиотеках grpc. Если я хочу использовать более старую версию библиотеки, тогда сделайте версию в обоих.net и java должны совпадать на каком-то уровне? Любая информация об этом будет полезна
java
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>1.41.0</version>
</dependency>
.net
<PackageReference Include="Grpc" Version="2.31.0" />
<PackageReference Include="Grpc.Tools" Version="2.31.0" PrivateAssets="All" />
Ответ №1:
Они не должны совпадать, но, как и в случае с любыми зависимостями, полезно иметь политику поддержания валюты.
Пакеты SDK предоставляют механизм для получения сообщений protobuf в ваше приложение и из него. Формат on-the-wire не должен меняться в зависимости от версии SDK.
Формат on-the-wire должен определяться syntax
(в настоящее proto3
время), определенным в файлах определения буфера протокола (proto), которые совместно используются клиентами и серверами, которые его реализуют.