Как в программе сервере на JAVA лучше реализовать многопоточность?

Здравствуйте! Пытаюсь написать 1 сервер на Java. Сервер для мобильного приложения, сервер должен принимать JSON запрос обрабатывать производить поиск по базе данных, формировать и отправлять JSON ответ. Суть вопроса в том что я хочу понять как на подобном сервере можно реализовать одновременную работу скажем свыше 1000 - 10 ...000 человек? Если можно с примерами.(Под сервером понимается программа которая может находиться не на одной станции). Получается 1 поток будет содержать такой функционал как: прием JSON, расшифровка, поиск по базе, формирование ответа и его отсылка. И на каждого пользователя 1 такой поток?
  • Вопрос задан
  • 742 просмотра
Пригласить эксперта
Ответы на вопрос 4
mitaichik
@mitaichik
Юзайте Netty
Ответ написан
Комментировать
al_gon
@al_gon
Никак!
Чтобы реализовать конкурентные запросы от 100 000 и далее, стоит смотреть не язык программирования, а архитектурные паттерны, парадигмы.
На одной инстанции, столько "не вывезет" не один язык. А что если он (сервер) "упал"?
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Многое зависит от "обработки и поиска". Если у вас эта процедура быстрая и не требовательная к памяти, то 1000 запросов в секунду Spring MVC прожуёт и без дополнительных манипуляций. А вот если обработка одного запроса долгая или запросов 10 000, то появляется проблема C10k. С этим вам поможет только асинхронный сервер. Или кластер серверов с балансировкой нагрузки.
Ответ написан
Комментировать
xez
@xez Куратор тега Java
TL Junior Roo
Ровно по этому вопросу есть видео, в котором Heinz Kabutz все подробно рассказывает:
https://www.youtube.com/watch?v=uKc0Gx_lPsg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы