Мне нужно создать виртуальный хост-сервер Vert.x, который направляет трафик в другие приложения Vert.x.Как достигается этот вид взаимодействия между приложениями? - PullRequest
0 голосов
/ 12 декабря 2018

Vert.x virtual host server for other vert.x apps

Как показано выше, мне нужно создать приложение Vert.x Java, которое будет HTTP-сервером / виртуальным хостом (трафик TLS Http, трафик веб-сокета)это перенаправит / направит определенный трафик домена на другие приложения Java Vert.x, работающие на том же сервере, каждое на своей собственной JVM.

Я читал в течение нескольких дней, но я не уверен, как подходить ко всем аспектамзадачи.

Что я знаю или имею опыт работы:

  • Создание HTTP-сервера и т. д.
  • Использование Vert.x Обработчик VirtualHost для "обработки" входящего трафика для определенного домена

Что я НЕ знаю:

  • Как мне "перенаправить «трафик домена в другое приложение Vert.x (это другое приложение Vert.x также будет работать на том же сервере, в своей собственной JVM).

    - Естественно, это« другое »Приложение Vert.x должно отвечать на запросы HTTP и т. Д. Какие механизмы Vert.x я использую для достижения этой цели?кт задачи?

Являются ли какие-либо из следующих концепций частью решения?Я не знаком с этими концепциями и с тем, как они могут или не могут являться частью решения.:

  • Запуск каждого приложения Vert.x с использованием опции -cluster?

  • Vert.x Streams?

  • Vert.x Pumps?

1 Ответ

0 голосов
/ 12 декабря 2018

Существует несколько способов, позволяющих вашим микросервисам взаимодействовать друг с другом, тот факт, что все ваши приложения работают на одном сервере, мало что меняет, но делает номер 2.) простым в настройке

1.) Связь с клиентом и сервером в состоянии покоя

  • У хоста и приложений есть веб-сервер
  • Когда вы обрабатываете входящие запросы на хосте, вы просто вызываетедругое приложение с HttpClient

enter image description here

Обычно все службы находят адреса друг друга через обнаружение службы .Например: каждая служба регистрирует свой адрес в центральном реестре, тогда как другие службы используют этот центральный реестр для поиска адресов.

Примечание: это может быть излишним для вас, и вы можете просто настроить адреса других служб.

2.) Микросервисы vertx запускаются в кластерном режиме

  • , а затем событийная шина распределяется между службами
  • Для всех входящих запросов выотправить трансляцию на eventbus
  • ответственное приложение отвечает на сообщение

enter image description here

Для дальнейшего чтения вы можете оформить заказ https://vertx.io/docs/vertx-hazelcast/java/#configcluster. Вы запускаете свои проекты с параметром -cluster и определяете кластеризацию в конфигурации xml.Я думаю, что по умолчанию он находит сервисы через локальную трансляцию.

3.) Вы используете брокер сообщений, такой как RabbitMq и т. Д.

  • Все ваши приложения подключаются кцентральный посредник сообщений
  • Когда на хост поступает новый запрос, он отправляет сообщение посреднику сообщений
  • Затем приложение-ответчик прослушивает соответствующие сообщения и отвечает
  • Хост получает ответ от брокера сообщений

enter image description here

Уже существует много клиентов vertx для определенных брокеров сообщений, таких как kafka, camel,zeromq:

https://github.com/vert-x3/vertx-awesome#integration

...