Потоковая передача с Spring Framework
Я разработал клиентское (Eclipse) серверное приложение (Spring Framework на Tomcat), используя Spring Remoting через HttpInvoker.
В некоторых случаях необходимо передавать большие файлы (>150 МБ) с сервера на клиент. Поскольку мы работаем с 32-битной системой на стороне клиента, у меня всегда возникает проблема с размером кучи Java (хотя я установил Xmx на 1014 МБ, но файлы могут быть даже больше).
Мой вопрос: есть ли способ сделать потоковое через HttpInvoker или что-то еще, чтобы решить эту проблему?
1 ответ
См. rmiio: RMIIO
RMIIO - это библиотека, которая максимально упрощает потоковую передачу больших объемов данных с использованием инфраструктуры RMI (или любой платформы RPC в этом отношении). Кому это нужно? Что ж, если вам когда-либо нужно было отправить файл с клиента RMI на сервер RMI, вы столкнулись с этой проблемой. И, если вам все-таки удалось реализовать базовое решение, оно, вероятно, выдало ошибку OutOfMemoryError при первой попытке отправить файл размером 2 ГБ. Из-за дизайна RMI эту общую и обманчиво простую проблему на самом деле довольно сложно решить эффективным и надежным способом.
Вы можете использовать его отдельно или поверх любой другой среды rmi, например httpInvoker.