Ответ 1
Tomcat - это контейнер сервлетов, поэтому он предлагает платформу, которая помогает разрабатывать и развертывать приложения на основе HTTP, такие как веб-сайты или веб-службы.
Вместо этого Vert.x помогает вам разрабатывать и развертывать любые виды асинхронных приложений. Это правда, что современные версии Tomcat поддерживают асинхронные сервлеты, но Vert.x поставляется с гораздо большим количеством удобных для пользователя асинхронных API, а также с другими преимуществами:
- Полная файловая система асинхронного API
- TCP (сервер и клиент)
- UDP (сервер и клиент)
- HTTP (S) (сервер и клиент)
- Служба общих данных (обмен объектами между модулями полиглота)
- ГА и кластеризация
- Общекластерный обмен сообщениями (цикл обработки событий)
- Мост шины событий (расширение цикла событий для браузеров через SockJS)
- Растущая экосистема модулей Vert.x
- Возможность встраивать Vert.x в устаревший код
- Использование существующей богатой и надежной экосистемы библиотек Java (Vert.x работает на JVM, в отличие от Node.js)
Лично я считаю, что изучение Vert.x очень полезно. На работе я с большим успехом повторно использовал те же знания, чтобы реализовать три совершенно разных продукта: сверхбыстрый Redis-прокси с нулевой копией, поддерживаемый JPA REST API и реактивное одностраничное веб-приложение.
Посмотрите на пример кода, он довольно прост, и шаблон близок к нулю.
Еще одна вещь: где вы прочитали Vert.x однопоточным? Это не правда! Vert.x имеет очень аккуратную модель параллелизма, которая обеспечивает одинаковое использование всех ядер (опять же, в отличие от Node.js).
Наслаждайтесь!