Подтвердить что ты не робот

Tomcat vs Vert.x

В течение последних нескольких дней я читал документы vert.x. Я знаю, что vert.x - это полиглот, однопоточный, неблокирующий IO, модульная архитектура, высокая масштабируемость.

Есть ли другие существенные различия между tomcat и vert.x?

Также, когда мы должны использовать tomcat и когда использовать vert.x?

4b9b3361

Ответ 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).

Наслаждайтесь!

Ответ 2

HTTP-сервер Vert.x позволяет прослушивать множество портов одновременно. Кроме того, его модель параллелизма намного лучше, чем любой подход на основе пула потоков, если вы хотите объединить свой HTTP-сервер с http-клиентом или чем-либо еще. Его производительность также намного лучше.