Алексей Рагозин - Spring REST-гигантомания: особенности работы с мультигигабайтными POST-запросами

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.ย. 2024
  • Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
    Подробности и билеты: jrg.su/Ypf1HW
    - -
    Скачать презентацию с сайта JPoint - jrg.su/m4c7EV
    Теоретически HTTP-запросы не имеют ограничений на размер. Разумеется, мы предполагаем «разумные» размеры, но что, если ваш коллега-data scientist считает датасет в 10 гигабайтов разумным размером? Можно спорить, разумно или нет отправлять 10 Гб одним POST-запросом, но может получиться так, что время споров уже позади, а результат необходим вчера.
    В докладе речь идет о реализации потоковой обработки данных в условиях ограниченной памяти и неограниченного размера запроса на фреймворке Spring. Разбираем 4 кейса: отправка данных по HTTP, получение данных по HTTP, запись в PostgreSQL, чтение из PostgreSQL.
    Даже если вы думаете, что POST-запрос на 10 гигабайтов - это плохая идея, техники потоковой обработки данных заслуживают право на существование. Потоковая обработка может обеспечить более эффективное использование ресурсов и «защиту от дурака» и в менее спорных архитектурных решениях.

ความคิดเห็น • 10

  • @antonkuranov
    @antonkuranov 27 วันที่ผ่านมา

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

  • @ixtal23
    @ixtal23 หลายเดือนก่อน +3

    Как это в postgres нет undo лога?! Там очень даже он есть в виде write ahead log и это создает серьезные проблемы с большими blob. Конечно его можно отключить настройками со всеми вытекающими.

  • @user-007-1
    @user-007-1 หลายเดือนก่อน +1

    То есть 10гб сохраняли в постгрес, не в файловое хранилище? И всё было нормально с этим?

  • @ksenar1
    @ksenar1 หลายเดือนก่อน

    интересно а как такие файлы экспортировать? показали метод импорта файла, который клиент сам как-то разбил на части (рад был фронтендер наверно).
    а как экспортировать 10гб, например, в excel, чтобы не свалиться в out of memory?

  • @shershnevaleksey3364
    @shershnevaleksey3364 หลายเดือนก่อน +1

    REST на 10 Г, выбор техстека огонь!

    • @MrAPPOLON123
      @MrAPPOLON123 หลายเดือนก่อน +1

      А что не так?

  • @birzhanamirov8715
    @birzhanamirov8715 29 วันที่ผ่านมา

    А где можно на код взглянуть?

  • @pavelpetrashov2975
    @pavelpetrashov2975 หลายเดือนก่อน +1

    Чел рассказал о том как ему прилетела таска запилить костыль и он его запил. Зачем кому-то это нужно хрен знает. Зачем доклад хрен знает.

    • @volshebniyfonar
      @volshebniyfonar หลายเดือนก่อน

      Странно, но это уже не первый доклад за последние время о том как кто-то делал какое-то ненужное извращение

  • @bananasba
    @bananasba หลายเดือนก่อน

    пф...