Ответ 1
Жизнеспособный вариант использования - это использование POST для многочастных форм данных, особенно при загрузке файлов.
Проект Typesafe ConductR (отказ от ответственности: я для него ведущий), получает многочастные данные формы, когда пользователь загружает расслоение. Мы используем akka-streams/http.
Мы считываем первые две части потока, так как в нашем протоколе указано, что они должны объявить некоторые метаданные, чтобы мы знали, с какими node писать пучки. После некоторой проверки мы затем определяем node, чтобы записать их и подключить частично потребленный поток. Таким образом, node, который получает запрос на загрузку пакета, согласовывает, к какому node он собирается его записать, но не должен потреблять весь поток (который может быть 200 МБ), а затем записать его снова.
Учет многочастных данных формы также является отличным случаем использования, поскольку вы можете передавать файл с диска в качестве источника и передавать его на какую-то конечную точку http, то есть клиентскую часть того, что я описывал выше.
Преимущества обоих вариантов использования - это то, что вы минимизируете объем памяти, необходимый для перемещения байтов по сети, и вы выполняете только файл IO, где это необходимо.