Создание нескольких HTTP-серверов на одном хосте / порте

Я хочу запустить несколько некластеризованных статей на моем веб-сервере. Каждая вертикаль запускается отдельным процессом / командной строкой и создает свой собственный HTTP-сервер (vertx.createHttpServer) для того же хоста и того же порта с уникальными маршрутами. Однако это, похоже, не работает, потому что после запуска одной вертикали все последующие вершины генерируют исключение BindException " Адрес уже используется ".

Как новичок в Vert.x, я могу думать только о двух способах:

  1. Программно разверните все вершины из одного процесса и заставьте все вершины использовать глобальный экземпляр маршрутизатора для добавления своих конкретных маршрутов.
  2. Кластеризация вершин и создание дополнительной вертикулы, которая предоставляет веб-сервер, который позволяет настраивать маршруты и обрабатывать запросы и ответы через кластеризованную шину событий.

Оба подхода заставили бы меня переписать большую часть моих статей.

Есть ли другой способ обойти эту проблему с несколькими серверами?

1 ответ

Каждая вертикаль запускается отдельным процессом / командной строкой и создает свой собственный HTTP-сервер (vertx.createHttpServer) для того же хоста и того же порта

TCP-соединения позволяют только одному процессу прослушивать один и тот же порт на одном хосте. Есть несколько способов обойти это (см. Ответы на этот вопрос), но я не уверен, что это лучшее решение.

... для того же хоста и того же порта с уникальными маршрутами

Vertx-Web предоставляет множество способов маршрутизации запросов. Одним из таких методов, который я недавно использовал, является суб-роутер, который может быть жизнеспособным решением для вас. Вы можете настроить "основной" маршрутизатор для маршрутизации запросов на разные маршрутизаторы для каждого "уникального маршрута", который вы хотите.

Другие вопросы по тегам