Если нельзя - то делать на Ноде. Если можно - то разрешит делать на Джаве, потому что в дело вступит аргумент, что джавистов больше на рынке, и если что всегда найдем кто продолжит поддерживать продукт
@RequestMapping
public Future<String> get(@RequestParam String input) {
CompletableFuture<String> future = new CompletableFuture<>();
return CompletableFuture.supplyAsync(() -> "in the background");
}
Истинно-верный путь на Java не знаю, но с ходу нагуглил это.
public class AsyncRequestProcessor implements Runnable
Сначала однопоточный на сокетахDone
Потом сделать его многопоточнымDone
Потом переписать в асинхронном варианте с java.nio.channelsIn Progress
Потом переписать ещё раз на NettyTo Do
Потом вдумчиво изучить Servlet API. Это даст вам базу, чтобы понимать как там все происходитОбязательно. Собственно я в посте первом и написал, что все изучу/прочту и наши и буржуйские сайты. Просто хотелось бы сначала на пальцах, чтобы придали мне направление ( и уверенности)
ну, мы тут стараемся для ТСа, а ему это, судя по вопросу, далеко не разумеющееся =(
@RequestMapping
public Future<String> get(@RequestParam String input) {
CompletableFuture<String> future = new CompletableFuture<>();
return CompletableFuture.supplyAsync(() -> "in the background");
SpringBoot может выступать как сервером приложений (монолит)
приостановить текущее задание и перейти к другому, пока из очереди не получен ответ. Причем, не только какие-то там абстрактные очереди, даже сама ос может работать асинхронно. Т.е. ос уведомляет нас (вызовом callback), когда в сокет пришел ответ/прочитан файл. Из этого коллбека мы определяем для какого запроса пришли данные и продолжаем выполнять тот запрос.
@RequestMapping
public Future<String> get(@RequestParam String input) {
CompletableFuture<String> future = new CompletableFuture<>();
return CompletableFuture.supplyAsync(() -> "in the background");
}
@RequestMapping
public Future<String> get(@RequestParam String input) {
CompletableFuture<String> future = new CompletableFuture<>();
return CompletableFuture.supplyAsync(() -> "in the background");
}
ничто не мешает на Java/C/C#/Go/Python/даже, при большом желании, на php написать приложение, которое будет обрабатывать пользовательские запросы точно так же
Пользователь. Веб сервера обслуживают запросы от пользователей. При попытке посмотреть, например, эту страницу, ваш браузер отправляет веб-серверу запрос
Вот хорошая статья которая объясняет в чём заключается асинхронность в nodeJS
Event loop регистрирует операцию в пуле потоков с нужным коллбеком.То есть то же самое, что у Apache? Пул потоков, и каждый уже может повиснуть при тяжелом запросе. Да?
Нету конкретного разработчика, нету архитектуры. Есть идея бизнеса, деньги и связи инвестора. Остальное - дело техники. Вот это "дело техники" надо быстро решить, начать нанимать Нод-щиков, или Джавистов.