Pull to refresh

Comments 9

Зашел в статью в надежде увидеть полноценный пример на C++. Ибо сам хочу взять грпц для своего пет проекта. А тут увы, разочарование - слегка переделанный типовой туториал, коих навалом в интернете.

Если бы вы покрыли тот вопрос, который упорно обходит Гугл в своих с++ примерах - цены бы вам не было. А это как раз авторизация с аутентификацией.

Спасибо, реально можно скачать и потыкаться из коробки.

Стоит упомянуть что в статье приводится пример синхронного сервера, который будет понимать по новому потоку при каждом новом подключении.

Зашел на гитхаб, за столь проработанные тесты отдельное большое спасибо, старательный подход. Но пример становится более интересным тогда, когда он более сложный. Хотелось бы посмотреть и на асинхронный вариант, и на вариант с защищенными кредами.

Из опыта работы с gRPC на C++:

  • они лезут в настройки pthread, после чего любой ВАШ поток при старте хапнет 70 метров памяти вместо 4 (после вызова инициализации gRPC);

  • сборка проекта будет увлекательным квестом, так как надо будет регулярно переделывать порядок линковки с бесконечными мелкими библиотеками Google;

  • у вас в проекте появится второй STL - библиотека absl, дублирующая std;

  • при эксплуатации вы обнаружите функцию GPR_malloc, потому посмотрите ней в глаза до того, как решите использовать это индийское чудо;

  • ну и изюминка под конец - асинхронные серверы gRPC на C++ при нагрузках в несколько сотен RPS через пять-десять минут перестают обрабатывать запросы, потому что прекращает работать CompletionQueue; как с этим бороться, мы не знаем, как воспроизвести на примере из самого gRPC - знаем точно.

UFO landed and left these words here

Хм.. Синхронный работает нормально. Сейчас напишу страшное, но переписывается на Rust очень быстро по итогу.

В простых случаях это отлично работает. Но признаться я сдался, когда потребовалось асинхронно пушить сообщения от сервера одному или нескольким из N клиентов. Не хотите такой случай тестами покрыть? :)

Sign up to leave a comment.

Articles