Начало работы
Эта статья относится к новым учебным пособиям по Vert.x Zero Up Framework для разработчиков. Вы можете обратиться ко всем статьям, чтобы узнать, как использовать его в своём реальном проекте.
Прежде всего, вы должны знать, что такое Vert.x Zero Up Framework? Это фреймворк в среде сервисной сети, который позволяет разработчикам не вникать в детали микросервисов, но при этом они могут пройти через все этапы бизнес-разработки в этом фреймворке.
Все примеры будут помещены в подпроекты vertx-zeus.
В этой главе описывается, как запустить Zero Up.
1. Автономный Zero
Если вы используете Zero Up только в автономной среде, вы можете поместить следующий простой код в свою главную запись java.
package up.god;
import io.vertx.up.VertxApplication;
import io.vertx.up.annotations.Up;
@Up
public class io.god.Anchor {
public static void main(final String[] args) {
VertxApplication.run(io.god.Anchor.class);
}
}
Затем вы можете запустить эту программу как Java-приложение. В консоли вы увидите некоторые логи:
......
[ ZERO ] ( Http Server ) ZeroHttpAgent Http Server has been started successfully. \n
Endpoint: http://172.20.16.41:6083/.
......
Порт по умолчанию для HTTP-сервера — 6083.
2. Микро Zero
Кроме автономного режима, Zero также поддерживает другой режим (Микро), чтобы развернуть все узлы в микросервисной среде. Пожалуйста, будьте осторожны с микросредой, для поддержки микросервисов требуется дополнительная конфигурация для Zero. Сначала обратитесь к следующему руководству, чтобы выполнить подготовительные работы. Демо-проекты находятся в vertx-zeus
:
vertx-athena
vertx-uranus
2.1. Конфигурация Api Gateway
В папке ресурсов вы должны подготовить следующие файлы конфигурации:
src/main/resources/vertx.yml
src/main/resources/vertx-etcd3.yml
src/main/resources/vertx-server.yml
Файл vertx.yml
должен содержать расширение lime node следующим образом:
zero:
lime: etcd3 # Эта конфигурация необходима для среды микросервиса
vertx:
instance:
- name: vx-zero
options:
# Исправить проблему с ограничением блока 2000.
maxEventLoopExecuteTime: 30000000000
Файл vertx-server.yml
должен определять другой тип сервера для Api Gateway:
server:
- name: gateway-athena
type: api # Этот тип конфигурации отличается от службы по умолчанию.
config:
port: 6000
host: 0.0.0.0
Файл vertx-etcd3.yml
содержит информацию о конфигурации центра регистрации etcd3:
etcd:
micro: zero-istio # Убедитесь, что микро api/service одинаковы, тогда они смогут общаться.
nodes:
- host: localhost
port: 6181
- host: localhost
port: 6180
- host: localhost
port: 6179
timeout: 2
В Zero Framework используется e3w. Пожалуйста, обратитесь по ссылке, чтобы проверить, как подготовить e3w для запуска центра регистрации etcd3. https://github.com/soyking/e3w. Вы можете установить инструмент etcd3-viewer для управления данными etcd3 из веб-клиента: https://github.com/nikfoundas/etcd-viewer. В Zero порты по умолчанию для e3w были изменены на 6181, 6180, 6179
.
2.2. Api Gateway
Исходный код Api Gateway такой же, как и у автономной службы:
package up.god;
import io.vertx.up.VertxApplication;
import io.vertx.up.annotations.Up;
@Up
public class io.god.Anchor {
public static void main(final String[] args) {
VertxApplication.run(io.god.Anchor.class);
}
}
2.3. Конфигурация сервиса
Затем можно подготовить следующий сервисный узел Zero для поддержки микросреды и взаимодействия с шлюзом API.
src/main/resources/vertx.yml
src/main/resources/vertx-etcd3.yml
src/main/resources/vertx-server.yml
Файл vertx.yml
такой же, как у шлюза API, убедитесь, что имена экземпляров совпадают со шлюзом API. Опции:
maxEventLoopExecuteTime: 30000000000
#### vertx-server.yml
`vertx-server.yml` up.god.file должен быть конфигурацией по умолчанию, вы можете установить порт для этого узла микросервиса.
```yaml
server:
- name: up-uranus
type: http
config:
port: 6002
host: 0.0.0.0
Здесь игнорируйте содержимое файла vertx-etcd3.yml
up.god, потому что они одинаковы. Если вы поместите все узлы службы в одну среду, конфигурация всех узлов службы etcd3 должна быть одинаковой.
Исходный код сервиса здесь такой же, как и в автономном режиме.
package up.god;
import io.vertx.up.VertxApplication;
import io.vertx.up.annotations.Up;
@Up
public class io.god.Anchor {
public static void main(final String[] args) {
VertxApplication.run(io.god.Anchor.class);
}
}
После того как вы закончите настройку micro zero, вы сможете запустить micro zero. Поскольку шлюз API будет искать все узлы служб, это не повлияет на последовательность запуска всех узлов служб. Вы можете сначала запустить шлюз API, а затем узел службы, или вы также можете сначала запустить узел службы, а затем шлюз API.
Вы должны увидеть следующий вывод на консоли:
......
[ Up Micro ] <Имя приложения> = «zero-istio»,
[ Up Micro ] Путь конфигурации = /zero/zero-istio/endpoint/routes/up-uranus:172.20.16.41:6002,
[ Up Micro ] Имя службы = up-uranus,
[ Up Micro ] Конечная точка = http://172.20.16.41:6002
[ Up Micro ] Маршрут Uris =
[ Up Micro ]
[ Up Micro ] √ Успешно зарегистрированные маршруты, подождите обнаружения... УСПЕХ √
......
Вместо информации о автономном режиме вы должны увидеть следующие журналы в шлюзе API:
......
[ ZERO ] (Шлюз API) ZeroApiAgent (id = ae815cba-4016-43f5-9be2-71a4ee23247c) развёрнут на 6000.
[ ZERO ] ( Шлюз API ) ZeroApiAgent успешно запущен. Конечная точка: http://0.0.0.0:6000/.
......
Затем вы должны видеть следующие журналы каждые 3 секунды:
......
[ ZERO ] ( Discovery ) Записи ( добавлено = 0, обновлено = 1, удалено = 0 ) были обновлены!
[ ZERO ] ( Discovery ) Записи ( добавлено = 0, обновлено = 1, удалено = 0 ) были обновлены!
......
Вот некоторые отчёты шлюза API службе обнаружения.
Здесь вы получаете начало для запуска zero, всего zero поддерживает два режима: Автономный & Micro. Микрорежим немного сложнее запустить, автономный режим очень прост в запуске. Теперь, когда вы закончили текущий учебник, вы должны знать:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )