Pull to refresh

Comments 12

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

Articles