Подтвердить что ты не робот

Возможность Netty обрабатывать большие полезные нагрузки

Я использую Apache MINA в моем проекте с открытым исходным кодом. Тем не менее, я попал в блок дорожного движения, где он не может обрабатывать большие загружаемые данные на сервер с мобильных устройств. Я получаю ошибки из памяти. Я никогда не использовал Netty и хотел обменять MINA на Netty.

Мой вопрос для команды Netty заключается в том, как Netty работает под нагрузкой большого количества входящих полезных нагрузок. В моих тестах производительности я генерирую нагрузку, используя 1000 одновременных устройств, каждый из которых загружает 1 мегабайт. Он имеет тенденцию генерировать 1GIG загруженных данных за 5 минут. Эта нагрузка имеет тенденцию прерывать MINA.

Может Netty поддерживать эту нагрузку и многое другое. Ваш вклад в это приветствуется.

btw: Я профилировал приложение, используя JProfiler. Он указывает на стек MINA в качестве виновника. Я даже полностью отключил свой стек на стороне сервера и оставил его на простом сервере MINA, который потребляет данные и возвращает данные. В этом режиме, несмотря на то, что с моим бэкендом не происходит реальной обработки, он начинает выходить из памяти примерно через 15-20 минут.

4b9b3361

Ответ 1

Казалось бы, это неправильное использование библиотеки, а не фактическая проблема с самой библиотекой. Если не ошибка пользователя, IMO Netty, вероятно, сделает то же самое. Я использовал MINA в приложениях с высокой пропускной способностью раньше этого результата. Возможно, ваша сеть насыщена, и буферы просто потребляют всю память, ожидающую загрузки. Просто мои 2 ¢.

Ответ 2

Я использовал Netty в прошлом для проекта, где мы пытались создать платформу, которая могла бы передавать большие куски данных по HTTP. Мы не можем загрузить тестовый Netty в соответствии с описанным вами сценарием. Когда мы рассматривали, какая структура Netty была выбрана из-за ее производительности и API над MINA и другими подобными структурами. Существует множество веб-сайтов, которые проводили сравнения Netty и MINA. IMO, вы должны быть в состоянии удовлетворить свой прецедент, используя комбинацию Direct ByteBuffers и записывая данные на диск/хранилище по мере их чтения.