Комментарии 5
Блин вот из этих генераторов и не охото использовать....
Почему просто нельзя создать новый проект , где будут лежат чистые C# интерфейсы, подключить этот проект и к серверу и к к лиенту.....
и можно будет использовать как :
var user = new gRPC("127.0.0.1").Request<IUser>.GetUser(55);
всё
Есть вот такая штука https://github.com/Cysharp/MagicOnion Работает поверх grpc, но использует интефейсы вместо proto файлов
Вам стоило предварительно поискать по аббревиатуре gRPC, прежде чем выдавать вводную для технологии, которую активно используют c 2015 года
Пока что когда asp.net core сконфигурирован с Kestrel, он создаëт новый тред для каждого запроса. На мой взгляд это не приемлемо для сколь-нибудь серьёзной нагрузки. В grpc это как то решено или тупо потоки один к одному создаются?
Исполняемый pipe одинаковый, более того если сравнивать производительность gRpc и rest api+newtonsoft, то первый проигрывает на маленьких пакетах данных, то-есть на классическом запрос/ответ он проигрывает.
Связано это с http2 в основном, сам протокол работает поверх ssl/tls, это его требование, а это влечёт накладные расходы.
Если вырубить его, то становиться лучше, но это как говориться тюнинг, а не из коробки.
Новый тред создаёться не всегда, запросы выполняються через планировщик, он решает сколько ему надо потоков забрать из пула.
Вообще поделие не плохое, мы его активно используем, но надо чётко понимать где и зачем это делаеться, но это применимо к любой технологии. Всегда нужно отдавать себе отчёт что и для чего твориться на проекте.
Распределенные сервисы с применением gRPC