Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 12

А не лучше взять высокопроизводительный и проверенный временем XBT?
Ну вообще я ставил целью изучить Netty, MongoDB и UDP-tracker протокол на примере реального приложения, а не «перебить» по производительности XBTT. Сейчас это лишь заготовка, из которой уже можно будет при желании сделать вполне себе стабильный и производительный трекер.
Executors.newCachedThreadPool() это не слишком правильно — в пике нагрузки может наплодиться много тредов. Лучше делать ограниченный пул с очередью
Спасибо, скоро поправлю.
НЛО прилетело и опубликовало эту надпись здесь
А можно поподробнее, где и из-за чего блокировка происходит?
А с Datastore похоже действительно могут быть проблемы… Чуть позже переделаю.
НЛО прилетело и опубликовало эту надпись здесь
да, длинные операции нельзя в асинхронных обработчиках делать. Впрочем, в приведенном случае это компенсируется Executors.newCachedThreadPool(), так что будет работать, но иногда как синхронный поток-на-хэндлер сервер, а это, видимо не то, что вам хотелось. Для подобных вещей в Netty есть несколько механизмов, например ExecutionHandler. Можно еще и чанковый ридер прикрутить, но это несколько сложнее.
НЛО прилетело и опубликовало эту надпись здесь
в Netty воркеры так и берутся из пула, из того, что передается в ChannelFactory. Документация вроде рекомендует cores*2, хотя конечно, это дело разработчика, сколько дать воркеров.
НЛО прилетело и опубликовало эту надпись здесь
Скажите, а почему вы не использовали encoder и decoder, а «парсите» пакет прям хендлере?
Ещё «Получение сообщений от клиентов.» сделал копи паст в свой tcp проект, и он не коррекно обрабатывает пакеты. Если юзер подключается и посылает 1 пакет и отключается всё норм, но если к примеру придёт больше 1 пакета они не коррекно обрабатываются.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации