Vert.x - различия между статьями и сервисами
Мы начали использовать vert.x несколько дней назад. Чтение документации (подробное руководство по асинхронному программированию с Eclipse Vert.x для Java-разработчика - https://vertx.io/docs/guide-for-java-devs/) я понял концепцию вертикула. Что я не понял, так это понятие "сервис" и "сервисный прокси":
"Это основная цель прокси служб. Она позволяет вам предоставлять службу на шине событий, поэтому любой другой компонент Vert.x может использовать ее, как только узнает адрес, по которому опубликована служба. Описание службы с Java-интерфейсом, содержащим методы, следующие асинхронному шаблону. Изнутри сообщения отправляются по шине событий для вызова службы и получения ответа. Но для простоты использования он генерирует прокси-сервер, который можно вызывать напрямую "
Но как отдельный сервис связан с концепциями вертикали и цикла событий? Принадлежит ли он отдельной отдельной вертикалке и имеет ли он отдельный цикл событий или принадлежит определенной вертике? Когда и где я должен зарегистрировать услугу? Внутри метода начала вертикали или просто в основном методе?
Спасибо!
1 ответ
Уровень детализации довольно бесплатный, но в основном вертикаль может представлять один или несколько сервисов (одноэлементные интерфейсы, реализующие бизнес-цели) различными способами (например , три распространенных способа).
Eventbus - это родной способ, позволяющий статьям асинхронно взаимодействовать между собой в модели очередей сообщений.
Таким образом, статья может открыть одну или несколько служб, прослушивая один или несколько каналов eventbus (и ответить на этих каналах), и может вызывать другие службы, предоставляемые некоторыми другими версиями, отправляя сообщения на другой канал по шине событий.
PS:
1) не нужно писать main
метод с использованием vert.x (вы можете использовать io.vertx.core.Launcher
внутри толстой банки или vertx
исполняемый файл для запуска вашей основной статьи).
2) вы можете запустить все свои статьи в виде отдельных пидов, используя io.vertx.core.Launcher
класс внутри толстой банки или vertx
исполняемый файл или вы можете запустить несколько вершин внутри основной вертикали, чтобы они по умолчанию использовали один и тот же цикл событий (но вы также можете объявить пул работников и использовать "вершины работников" в соответствии с: https://vertx.io/docs/vertx-core/java/).