подключению
Вот есть клиент, он подключился к серверу и 23 на 7 отправляет данные, может по сотни раз переподключаться.
Данные его обрабатываются в том же потоке обработки netty. Как я понял по примерам, то норма обрабатывать логику, сохранять в бд и отпралвять ответ клиенту прям в этих потоках, если ничего не блокируется. Или нет?
Волнуюсь за производительность. Есть желание вынести обработку в свой ExecutorService, или вообще в реактивщину запихнуть
Так же на серверах просидает память. Именно в ОС, на линуске. При перезапуске сервиса не освобождается память. Может ли это быть связано с netty, то что у него данные хранятся вне стека джавы? Как исправить это, хотя бы сменить место хранения байт? Гугление не даёт точных ответов
И нормально ли в "трубе" нети на каждое соединение создавать кодировщики и декодировщики + обработчик пакектов на соединение?
И да, обработчик пакетов соединения хранит данные о клиенте, это норма?
Что-то кажется, что где-то я не понимаю. Как найти информацию по этому - не знаю
Изучать сам исходник netty - последнее, что буду делать, пока ищу инфу на просторах рунета и чатах
Ключевой аспект работы с нетти - это не блокировать поток(и) event loop-а. Т.е. условно вы вычитываете сообщение и сразу кидаете его на асинхронную обработку - через blocking queue какую-нибудь или через executor. И там уже делаете с ним что нужно - в бд сохраняете или ещё как-то обрабатываете.
Это если клиентам не хватает потоков обрабытваться. У нас пока проблема в том, что память оперативная куда-то уходит
Голый нетти для обучения используется?
Если у вас память течёт, можно посмотреть, сколько ByteBuf/ByteBuffer лежит в хипе. Нетти их обычно переиспользует (то есть они лежат в пуле), и если их не отпускать явно, так оно и будет.
Если там что-то жрет память помимо твоего сервиса, то ты можешь увидеть это в top. Там буквально пару клавиш нажать, чтобы выбрать по какой колонке сортировать.
>И нормально ли в "трубе" нети на каждое соединение создавать кодировщики и декодировщики + обработчик пакектов на соединение? Можете проаннотировать через Sharable, чтобы не создавались
Так при перезапуске сервисов память не освобождается 😅
Слово "помимо" там просто так?
Обсуждают сегодня