gRPC - альтернатива REST API от Google. Пишем gRPC сервер и клиент на Java и Python.

Sdílet
Vložit
  • čas přidán 23. 02. 2021
  • Скачать PVS-Studio бесплатно: www.viva64.com/alishev
    CZcams канал PVS-Studio: / pvsstudiotool
    VK группа PVS-Studio: pvsstudio_rus
    pom.xml: gist.github.com/NeilAlishev/1...
    Продвинутая Java - swiftbook.org/courses/415
    Telegram: t.me/alishev_g
    Реклама и сотрудничество: alishev.neil@gmail.com

Komentáře • 295

  • @alishevN
    @alishevN  Před 3 lety +7

    Telegram: t.me/alishev_g

  • @wizardadeptus2044
    @wizardadeptus2044 Před 2 lety +11

    Хорошее видео. Позволило поверхностно разобраться в gRPC под стакан уиски. В свою очередь это позволило отдебажить gRPC сервак заказчика на котлине и понять почему он возвращал NPE в ответе. А то непонятно было, куда коней запрягать с этим gRPC. Ура, баг починен, автору респект.

  • @user-jo5js4ug5b
    @user-jo5js4ug5b Před 11 měsíci +1

    Мужик, спасибо за объяснение с практикой и сжато в тоже время.
    Я ваще не в теме был.
    Но честно, мужик.
    ctrl + A, ctrl + c - скопировать все содержимое файла.
    ctrl + A, ctrl + v - вставить в файл с полной заменой.
    Так сильно проще, чем крутить колесико.

  • @DairaGames
    @DairaGames Před 3 lety +38

    Блин чувак. Ты просто вангуешь. Я только сегодня такой думал: блин, вот бы урок про микросервисы замутил бы кто то годный. И тут уведомление. Просто бомба. Спасибо большое. От души. Я в этой жизни теперь точно не буду счастлив, пока лично не найду тебя не пожму руку. Спасибо

  • @user-vj7dc1ib2y
    @user-vj7dc1ib2y Před rokem +22

    Огромная благодарность, Наиль, за Ваш труд! Реально талант. Настолько доступным языком объяснять сложные вещи. Смотрел в других источниках про gRPC , почти ничего не понял. После этого видео сразу целостное понимание технологии, подхода и преимуществ. И сразу с примером👍Спасибо!)

  • @aliaksandraryzhyk4138
    @aliaksandraryzhyk4138 Před 2 lety +4

    Как всегда на высшем уровне.... все четко, понятно, без воды... Спасибо большое!!!

  • @eugenenazirov
    @eugenenazirov Před rokem +2

    Офигенно! Как раз на проекте столкнулся с использованием микросервисов, которые общаются по gRPC. Помогло очень быстро въехать в тему. Спасибо большое!

  • @user-lx4dc1ls3e
    @user-lx4dc1ls3e Před 6 měsíci +3

    По моему мнению Наиль самый комфортный обозреватель по Java!!! Скорость подачи ин-фы + грамотная речь + хороший объём нового материала!!! В общем просто КЛАСС👍

  • @RG-em1nh
    @RG-em1nh Před 3 lety +41

    Мне бы такого ментора как ты, спасибо большое добрый человек !

  • @CyberAcidPlanet
    @CyberAcidPlanet Před 3 lety +6

    Аргмент по несжимаемость JSON надуманный. Он отлично жмётся тем же gzip или brotli, где не будет проблемы того что у нас один и тот же ключ повторяется много раз (будет ссылка на этот символ при сжатии).

  • @user-hv2vy3kd9f
    @user-hv2vy3kd9f Před 2 lety +4

    Я наконец то разобрался с gRPC) Спасибо тебе за проделанную работу!

  • @ivanfedin9094
    @ivanfedin9094 Před rokem +1

    Шикарный урок - очень подробно и понятно. Спасибо!

  • @Skykvi
    @Skykvi Před rokem +1

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

  • @psy667
    @psy667 Před 3 lety +7

    Очень качественная подача информации, спасибо вам огромное

  • @nikenuke
    @nikenuke Před 8 měsíci

    Очень классный материал! Посмотрел до этого 10 роликов по gRPC и не мог разобраться все равно, теперь же все ясно, спасибо!

  • @fedyasavchuk1043
    @fedyasavchuk1043 Před 3 lety +15

    Был бы очень признателен за подобные уроки по kafka и maven :)

  • @user-ty7dj4pm5b
    @user-ty7dj4pm5b Před rokem

    Спасибо большое за ценный и подробный урок!

  • @svetlanamazhaykina6918
    @svetlanamazhaykina6918 Před měsícem

    Спасибо за Ваш труд! Коммент в поддержку канала.

  • @varchar21
    @varchar21 Před 3 lety +2

    Наиль, благодарю! Всегда актуально и своевременно. Спасибо еще раз!

  • @kursruk
    @kursruk Před 3 lety +2

    Отсутствие строгой типизации, это не минус, а плюс JSON.
    По поводу избыточности JSON.
    {
    "header":["date", "event"],
    "data": [
    ["2020-01-14", "Событие 1"],
    ["2020-01-19", "Событие 2"],
    ["2020-01-23", "Событие N"],
    ]
    }
    Так, что избыточных ключей легко избежать.
    Также ничто не мешает гонять потоки JSON объектов по HTTP 2.
    Тем не менее большое спасибо за видеоролик.

    • @alexanderp6982
      @alexanderp6982 Před rokem

      А теперь каждый раз пиши ручные парсеры на этот вот свой формат, который из коробки ни одна либа для работы с жсонами не поймет.

  • @user-rk1xr3cs8x
    @user-rk1xr3cs8x Před 2 lety

    Прекрасный урок, большое спасибо!

  • @olegrazin3429
    @olegrazin3429 Před 3 lety +3

    Так вот как ты выглядишь, Alishev. Этот видео формат очень крут!

  • @user-fy5kj8hf4j
    @user-fy5kj8hf4j Před 3 lety +3

    Отличный и понятный урок, спасибо!

  • @Denis-Orlov
    @Denis-Orlov Před 3 lety +9

    Как же ж вовремя! Как раз на работе попросили замутить gRPC клиент!

  • @leonidvolobuev7096
    @leonidvolobuev7096 Před 3 lety +3

    Чел ты лучший, серьезно, мне кажется если бы ты объяснял кватновую механику или молекулярную физику, даже тут все было бы предельно понятно. Огромное тебе спасибо, благодаря тебе научился действительно многому

  • @user-mk2xy9py8s
    @user-mk2xy9py8s Před 7 měsíci

    Наиль, у Вас талант объяснять сложные вещи простым языком. Например я очень долго искал и не мог найти понятное для себя руководство по Spring'у, пока не наткнулся на Ваш курс - он стал для меня единственным спасательным кругом. И то же самое с gRPC. Вам нужно собственную школу по программированию открывать для программистов, уже владеющих основами языков программирования, такой как бы продвинутый курс. Или стажировать людей за деньги где-то с оплатой в Вашу сторону. Первую работу найти очень тяжело, поэтому думаю на это реально должен быть спрос - новичкам дать возможность покупать коммерческий опыт, котирующийся у работодателей, за деньги.

  • @ykochubeev
    @ykochubeev Před rokem

    Большое спасибо вам, очень полезное видео. Пойду поищу ваши уроки про Java

  • @spilnich
    @spilnich Před 3 lety +3

    Получил первый оффер! Спасибо огромное за grpc и все видео по Spring, кучу раз пересматривал и конспектировал.

  • @dzmitrydarashuk6528
    @dzmitrydarashuk6528 Před 7 měsíci

    Я человек простой, вижу новое видео Алишева - захожу, ставлю лайк!

  • @It_wizards
    @It_wizards Před 2 lety

    Круто, очень доступно, красавчик!

  • @ZzooD
    @ZzooD Před 3 lety

    Классный урок, побольше бы таких )

  • @MrNil1982
    @MrNil1982 Před 3 lety +1

    Ща некогда, но позже обязательно погляжу. И чую новый формат зайдет (давно пора) Пока просто лайкос и низкий поклон за труд!

  • @AndreyMalygin
    @AndreyMalygin Před 2 lety

    Товарищ Алишев, хочу сказать тебе, что ты крутой поц, который выручает меня в знаниях уже который раз, тебя знают половина моей группы в институте, ты уже стал некой мафией в java. Держишь уже свою нишу довольно долго, репект

  • @Nievinor
    @Nievinor Před 3 lety

    Не знал ранее про данный механизм. Спасибо)

  • @user-hd8sc3ux7i
    @user-hd8sc3ux7i Před 9 měsíci

    Редко оставляю комментарии, но ты красавчик! Столько полезного материала!❤

  • @faniskhalikov9736
    @faniskhalikov9736 Před 3 lety +3

    Круто! Очень хорошо разобрано, заходит отлично ) Талантливый человек талантлив во многом (на заднем плане гитара и синтезатор : ) )

  • @pozystark
    @pozystark Před 2 lety

    Хороший урок. Спасибо)

  • @miketuev3241
    @miketuev3241 Před 3 lety

    Супер ролик! Большое спасибо. Доходчиво и понятно.

  • @vladimirnechiporyuk2948
    @vladimirnechiporyuk2948 Před 11 měsíci

    Афигенная штука. Теперь буду писать пет проекты только на gRPC!

  • @alekcandrovich
    @alekcandrovich Před 2 lety

    спасибо! все понятно и лаконично

  • @user-uu7cg8mp7l
    @user-uu7cg8mp7l Před 3 lety

    Классно!!! Спасибо большое за проделанную работу! Очень интересно слушать!

  • @antondzmitruk2102
    @antondzmitruk2102 Před 3 lety +2

    Нет слов! Спасибо тебе огромное!

  • @ivanstrelka3448
    @ivanstrelka3448 Před 2 lety

    Очень круто. Спасибо

  • @maxim9976
    @maxim9976 Před 3 lety +6

    21:30 для браузера можно использовать gRPC-web. Там пока есть ряд ограничений по стримингу, но в целом рабочий вариант.

    • @RedkeiGost
      @RedkeiGost Před 2 lety +1

      Да ну куча проблем у gRPC-web. Вот приходит вам мессаг-респонс, и нужно её прочитать. Вы делаете toObject и если в глубине есть тип google_protobuf_struct_pb.Struct то оно превратится в fieldsMap. И можно конечно на Struct юзать toJavaScript, но Struct может быть очень глубоким потомком jspb.Message и во-первы, идти через геттеры к нему крайне неудобно, а во-вторых, нам нужно все дерево и нужно как-то мержить результат toObject и его потомка. С типизацией у Struct тоже плохо - она вообще не имеет типа и это реально приводит к проблемам в typescript. В целом ну очень неудобно, имхо.

  • @evgenkr2993
    @evgenkr2993 Před 3 lety

    супер видео! понятно преподнесено материал! спасибо!

  • @DairaGames
    @DairaGames Před 3 lety +1

    Формат кстати бомбезный. Люблю иногда посмотреть стримы от GeekBrains (Александр Фирсунов) из за того, что урок идёт на примере и больше часа.

  • @Pewdew
    @Pewdew Před 3 lety

    Послушал с удовольствием, первый раз покурить оторвался на 47й минуте))

  • @mykytafrolov
    @mykytafrolov Před 3 lety

    Крутой урок, спасибо!

  • @llARXANGELll
    @llARXANGELll Před 2 lety

    Ух годнота. Однозначно лайк!!!

  • @denislobanov7582
    @denislobanov7582 Před 2 lety

    Просто Вау! Такая крутая штука, а я и не знал! Спасибо автору за труд, очень хороший и нужный вводный ролик! Кстати, а почему в сервере response билдится каждую итерацию цикла? Один раз сбилдить, затем много раз отправлять. Или так нельзя?

  • @ChamZod
    @ChamZod Před 3 lety +1

    Не успел начать рест изучать, а тут уже что-то новое)

    • @NummeSpnet
      @NummeSpnet Před 3 lety

      не парься, ещё долго рест будет актуален.

  • @indecentexposure852
    @indecentexposure852 Před rokem

    Спасибо за видео

  • @tuujhfjjiyiiitr5763
    @tuujhfjjiyiiitr5763 Před rokem

    Спасибо! очень помог

  • @user-iu6yz6ck6h
    @user-iu6yz6ck6h Před 3 lety

    Отличное видео) Спасибо

  • @aidynabirov7728
    @aidynabirov7728 Před 2 lety

    Отличное видео !

  • @antondzmitruk2102
    @antondzmitruk2102 Před 3 lety

    Ты мог бы сказать типо есть такая штука от Гугла и используйте ее вместо REST, она лучше), но ты прям с самого начала разжевал) Браво!

  • @daniyarrakhymbek5876
    @daniyarrakhymbek5876 Před 11 měsíci

    Большое спасибо!

  • @IgorAlov
    @IgorAlov Před 3 lety

    json так же сжимается может deflate или gzipом, если настроено сжатие между клиентом и серверов. это прям очень стандартно. и реально эффективно это все и получается бинарно. так же весь html передается, он сжимается при передаче. посмотрите это с помощью tcpdump данные в теле буду бинарными а не текстовыми при использовании сжатия

  • @user-fg7hf4qo8m
    @user-fg7hf4qo8m Před 3 lety +9

    Никто не мешает в rest использовать бинарный формат и сжатие.

    • @kalashnikofsergey7064
      @kalashnikofsergey7064 Před 3 lety

      Я бы посмотрел как ты свагером нагенеришь код под бинарные сообщения

    • @dark_evil77
      @dark_evil77 Před 3 lety

      Я мешаю

    • @user-fg7hf4qo8m
      @user-fg7hf4qo8m Před 3 lety +2

      @@kalashnikofsergey7064 чем? Тут ведь речь шла не об удобстве и трудозатратах, а о принципиальной возможности.

    • @user-ns7jq7sf1g
      @user-ns7jq7sf1g Před 3 lety +5

      это помимо того, что json, как и любой текст, прекрасно жмётся апаратными средствами, прозрачно для разработчика.

  • @GT-cv3xu
    @GT-cv3xu Před 3 lety

    Спасибо! Видео супер!

  • @lookingforthetruth5903
    @lookingforthetruth5903 Před 10 měsíci

    Спасибо!

  • @alexeymyasnichenko3318
    @alexeymyasnichenko3318 Před 2 lety +2

    был ли у кого затык в том, что после генерации классов из прото файла, в таргет папке все как в видео, но при имплементации возникает затык, идея просто не видит этот класс из таргета, при ручном импорте com.example.grpc* , идея не видит уже с папки example . хотя ТООЧНО она в иерархии папок в таргет файлах есть как в видео.

  • @mazeltov2701
    @mazeltov2701 Před 3 lety

    Неплохая обертка веб сокетов

  • @gamechannel_833
    @gamechannel_833 Před 3 lety +4

    Не посмотрев видео, сразу ставлю лайк!

  • @TeamKiller06
    @TeamKiller06 Před 3 lety

    В REST API ведь можно использовать потоковые данные через библиотеку Reactor для Spring Boot. Данные передаются через Mono и Flux.
    Спасибо за обзор. Все четко и доступно. Однозначно заинтересовала технология. Немного напрягает что вместо JSON используется бинарный код

    • @johnxibai8454
      @johnxibai8454 Před 2 lety

      Если не нравится делай на старых технологиях, и как ты собираешься организовывать стримы?

  • @olzhasserikbayev1155
    @olzhasserikbayev1155 Před 3 lety

    спасибо огромное за урок, очень многое для себя уловил))

  • @ramilsafin5751
    @ramilsafin5751 Před 3 lety

    С удовольствием послушал тебя, Наиль!

    • @ramilsafin5751
      @ramilsafin5751 Před 3 lety

      Из предложений по улучшению контента: можешь приобрести планшет или ноутбук с поддержкой стилуса (ручки) для интерактивного добавления материала поверх слайдов.

    • @alishevN
      @alishevN  Před 3 lety

      @@ramilsafin5751 Спасибо за фидбэк!) Подумаю над этим.

  • @redologs
    @redologs Před 3 lety +1

    Увидел тему, посмотрел длительность - лайк не глядя.

  • @tonyvegas6009
    @tonyvegas6009 Před 3 lety

    Лукас атдущи! работа с железом wanted :)

  • @Softovick
    @Softovick Před 3 lety +1

    Спасибо за видео.
    Но вопрос возник в голове у меня - ведь если текст, то его тоже можно сжимать на лету, есть же алгоритмы. Которые достаточно эффективно и быстро сжимаю данные и вот их можно по сети гонять. По сути ведь все равно gRPC дает накладные расходы на кодировние/декодирование, в REST это можно на сжатие/распаковку тратить. Ну правде это не решает вопрос с протоколом и стримами, согласен, но тем не менее.

  • @kamurashev
    @kamurashev Před 3 lety +5

    Как скопировать джава RMI в другие языки и ни кому не говорить. Структура 1 в 1. И этой штуке 100 лет в обед. Я еще не родился. За видео лайк.

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil Před rokem

    Спасибо

  • @pavelgolin2421
    @pavelgolin2421 Před 3 lety

    для приема данных с сенсоров используется mqtt, а http для веба

  • @arthureirich7591
    @arthureirich7591 Před 3 lety +1

    Скажите, пожалуйста, в чем отличие установки соединения по HTTP 2 с последующим получением по этому соединению потока данных и сокетов? Используя сокеты тоже ведь можно установить отдельное соединение с сервером и получать по нему данные? Большое спасибо за урок!

    • @gregory-povorozniuk-piano
      @gregory-povorozniuk-piano Před rokem

      HTTP и Web Sockets это разные протоколы сделанные на основе TCP

  • @kazakhification
    @kazakhification Před 3 lety +24

    Json сжимается gzip-ом разве нет?

    • @alishevN
      @alishevN  Před 3 lety +1

      даже сжатый JSON все равно занимает больше места, чем protobuf - nilsmagnus.github.io/post/proto-json-sizes/

    • @FastDamage
      @FastDamage Před 3 lety +6

      @@alishevN Честно не много не понял,так если проблема в размере JSON,что мешает весь JSON прогнать через protobuf и отправить? я ничего не имею против gRpc но в большом проекте где под 1000+ методов которые взаимодействуют с различными микросервисами замучаешься всё описывать в .proto (для такой задачи надо нанимать отдельно человека на должность mapper ;) )

    • @mishashins
      @mishashins Před 3 lety

      @@FastDamage у нас в C# можно описывать интерфейсы)

    • @brunneng8575
      @brunneng8575 Před 3 lety +5

      Автор даёт ссылку на тесты. Там видно что при коротких сообщениях прото дает выигрыш. Однако на больших сообщениях явно теряет преимущество.
      Я думаю что нужно ещё больше тестов. Повысить энтропию данных, зажать их и посмотреть что получиться. Есть шанс что в разных ситуациях, в разных задачах придется выбирать между прото или json вариантом, так как есть зависимость от объема данных и рассеивании. Аргумент того что json сжатие требует процессорное время, такое себя, так как любое сжатие этого требует. Нужно больше хороших синтетических тестов и тестов из жизни, реальных проектов.
      Но по мне, пока что, JSON выглядит лучше, даже если на коротких сообщениях проигрывает.

  • @MrShark123123
    @MrShark123123 Před 3 lety +1

    Надеюсь тема grpc будет дальше развиваться,очень нужная штука сейчас,а русскоязычных материалов нету

  • @user-vc5sn3ob6c
    @user-vc5sn3ob6c Před rokem

    Блин , хорошая лекция. Толковый лектор....

  • @user-be2cy2fb9u
    @user-be2cy2fb9u Před 2 lety

    огромное списибо

  • @nikolay7658
    @nikolay7658 Před 3 lety

    Интересная технология

  • @ZIK_1337
    @ZIK_1337 Před 5 měsíci

    привет! а как происходит версионирование proto файлов? допустим на сервере он поменялся, это же не значит, что все клиенты должны обновляться? есть какие-то версии пакетов, чтобы использовать конкретный proto файл на клиентах?

  • @p.polunin
    @p.polunin Před rokem

    Обалдеть! 😳

  • @ilyababcenco6864
    @ilyababcenco6864 Před 3 lety +7

    Автолайк, Наиль скажи пожалуйста когда ждать следующий урок по спрингу, ну ооочень жду там как раз на самом интересном ты остановился

    • @alishevN
      @alishevN  Před 3 lety +11

      по спрингу я записываю полный курс. выйдет через месяц-два

  • @RedkeiGost
    @RedkeiGost Před 2 lety

    "в случаи с монолитным приложением мы можем изменить какую-то часть и это затронет другие приложения" - вопрос архитектуры монолита. Зацепленность-связанность, все дела. "Всё объединено" это не от монолитности же зависит. Микросервис тоже можно изменить так, что это затронет зависящие от него микросервисы.
    Используется версия http2 только если браузер его полностью поддерживает. Иначе энвой же шлет по http1, разве нет?
    Ключ-единицу 29:21 мог бы и proto сгенерировать.

  • @vladislavborisov985
    @vladislavborisov985 Před 2 lety

    У меня такой вопрос, когда мы делаем стрим данных от сервера клиенту, в этот стрим попадает 10000 сообщений, которые клиент вычитывает подключившись к серверу, если происходит перезапуск клиента то сообщения читаются с начала, а как сделать, чтобы сервер стримил сообщения которые клиент получал бы не с самого начала, а в реальном времени, т.е. со следующего отправленного после подключения клиента?

  • @konstantinr7632
    @konstantinr7632 Před 3 lety

    Отличные видео! Спасибо!

  • @evgenyshevelev6100
    @evgenyshevelev6100 Před 3 lety

    Охренеть! Это же гениально! Общение клиента и сервера как по шине между процессором и ОЗУ, например. Я балдею)

  • @konstantinviktorovich8194

    Подход работы с gRPC, чем то похож с SOAP. Там на основе wsdl генерится java код, а здесь на основе proto файла. Как у клиента так и у сервера эти два файла должны быть одинаковые.

  • @eugenenovikov671
    @eugenenovikov671 Před 2 lety

    Наиль, а если мы работаем в другой IDE, где нету такого окна Maven с package, как нам тогда всё запускать?

  • @user-df1bx3jl2c
    @user-df1bx3jl2c Před 3 lety

    В тренде :) 👍

  • @dmsa9404
    @dmsa9404 Před 3 lety

    Прикольно... я уже хотел написать что-то из серии так это уже проходили с WSDL а тут и скорость выше раз в 10 и тыры пыры

  • @SnitchShow
    @SnitchShow Před 3 lety

    Очень интересное видео, спасибо за информацию.
    P.S Технология чем то похожа на WCF в C#.

    • @sp1ne2104
      @sp1ne2104 Před 3 lety +1

      wcf хорош, но его нельзя использовать c .net core (только клиент) по этому придется брать gRPC

  • @mikhail6694
    @mikhail6694 Před 3 lety

    спасибо!

  • @vladimirblagin3105
    @vladimirblagin3105 Před rokem

    24:05 Глядя как развиваются последние несколько лет нейронки, есть большая вероятность замены таких инструментов как PVS-Studio анализаторами на базе AI. Желаю ребятам скорее оседлать этого конька и включить в свой проект AI подсистему анализатора кода.

  • @silentium_noxe
    @silentium_noxe Před 3 lety +1

    >нам нужно только унаследоваться от этого класса 35:45
    Тем временем класс public **final** class
    Upd: так бы прямо и говорил что мы будем наследоваться от вложенного класса. 😂

  • @user-vz5yr3dm7d
    @user-vz5yr3dm7d Před 3 lety

    Спасибо большое за видео. Хочу спросить - а как задавать повторяющиеся поля?Как задать хобби в этом примере? Я постоянно отваливаюсь по OutOfBoundException

  • @Roma4086
    @Roma4086 Před 3 lety

    а SoapUI еще используется где-нибудь?

  • @k0rinf
    @k0rinf Před 3 lety +1

    Поясните как контролить версии прото файла!? Как сервисы должны понять что он обновился и нужно его поменять и перегенерить код!?

  • @shubinsyu
    @shubinsyu Před 3 lety +5

    А чем отличается микросервис от EJB-компонента, работающего в распределенной JEE-платформе? И в чем отличие gRPC от RMI/Corba?

    • @user-uz4lo4ho6n
      @user-uz4lo4ho6n Před 2 lety +5

      EJB аналогичен по своей сути мультимодульному проекту на мавене, когда монолит делят на разные куски в зависимости от его действий в приложении, например, один ejb компонент отвечает за DAO, другой бизнес логика, другой интеграция с внешними сервисами и ТД.
      Концепция миеросесервисов строится вокруг DDD подхода в рамках которого у каждого сервиса может быть и свой dao слой, и свой слой интеграции и своя бизнес логика. А по поводу RMI, так эта технология и так используется в спринг клауд и является его базой. Grpc в отличии от RMI можно сипмлементировать на любом языке, таким образом не завязываясь на определенном стеке, в то время как клауд в рамках одного цельного приложения это набор микросервисов на java

  • @lotierm
    @lotierm Před 3 lety +2

    rest api тоже можно бинарно передавать

  • @canti2332
    @canti2332 Před 3 lety +3

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

    • @alishevN
      @alishevN  Před 3 lety +2

      да, правильное замечание, но даже сжатый JSON все равно занимает больше места, чем protobuf - nilsmagnus.github.io/post/proto-json-sizes/

    • @MrRais96
      @MrRais96 Před 3 lety +4

      @@alishevN При передаче данных по каналам связи, что текст, что бинарные файлы сжимаются. Текст лучше, бинарные данные меньше, а в целом получающийся пакет примерно одинаков, разница в 5-10%. Излишний размер влияет на надежность, текстовый формат передается чуть медленнее, но надежнее. Все вышеописанное влияет на передачу между удаленными серверами, в случае связи между близкорасположенными серверами, без использования внешних каналов, т.е. интранет, то тут бинарный формат в 7-10 раз может быть быстрее.

    • @muxahx3096
      @muxahx3096 Před 3 lety

      GraphQL вам в помощь.