Статьи

Ваш первый сервис Lagom — начало работы с Java Microservices

Я был напрасен в написании своего следующего отчета О’Рейли, и у меня не было достаточно времени для того, чтобы вести блог некоторое время. Время, чтобы наверстать упущенное и дать вам действительно быстрый старт в новой инфраструктуре микросервисов под названием Lagom Это отличается от того, что вы, возможно, знаете из Java EE или других структур приложений. И это одновременно вызов и возможность узнать что-то новое. Если вы можете подождать еще пару дней, зарегистрируйтесь, чтобы получить уведомление о том, когда будет доступен мой новый отчет, и узнайте все об истории Lagom и о том, как начать. Я проведу вас через пример приложения и познакомлю вас с основными понятиями более подробно, чем я мог бы в своем блоге. Этот пост предназначен для пациентов, которые хотят начать сегодня и сами все выяснить.

Некоторый фон

В наши дни микросервисы повсюду, и все больше и больше рассказывается о том, что нужно для построения сложной распределенной системы с существующими стеками промежуточного программного обеспечения. И есть гораздо лучшие альтернативы и концепции для реализации приложения в виде архитектуры на основе микросервисов. Основные концепции реактивных микросервисов были представлены Йонасом Бонером в его докладе « Архитектура реактивных микросервисов», который можно бесплатно получить после регистрации. Лагом является реализация описанных концепций. Он использует технологии, о которых вы, возможно, слышали, но, вероятно, раньше редко использовали в качестве разработчика Java EE: в основном, Akka и Play . Но сейчас давайте просто забудем о них, потому что Lagom предоставляет вам отличную абстракцию и дает вам все необходимое для начала.

Предпосылки

Иметь активатор и Java 8 установлены. Активатор — это то, что вы, вероятно, также не слышали. Он построен на основе sbt и помогает вам начать работу с вашими проектами и многое другое . Система Lagom обычно состоит из набора сборок sbt, каждая из которых предоставляет несколько сервисов. Самый простой способ начать работу с новой системой Lagom — это создать новый проект, используя шаблон активатора lagom. Больше ничего не нужно прямо сейчас. Возможно, вы хотите установить IDE. IntelliJ или Eclipse должны быть хороши на данный момент.

Настройка вашего первого проекта

Лагом в затмении (1)
Время, чтобы увидеть код. Давайте сгенерируем простой пример из шаблона lagom-java:

1
$ activator new first-lagom lagom-java

Перейдите во вновь созданную папку «fist-lagom» и введите команду sbt, чтобы создать проект eclipse.

1
$ activator eclipse

Загружается куча зависимостей, и после успешного выполнения вы можете открыть Eclipse и использовать мастер импорта для импорта существующих проектов в вашу рабочую область. Обратите внимание, что если вы используете библиотеку Immutables с Eclipse, вам тоже нужно это настроить .

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

1
$ activator runAll

Вывод выглядит примерно так:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
[info] Loading project definition from /Users/myfear/projects/first-lagom/project
[info] Set current project to first-lagom (in build file:/Users/myfear/projects/first-lagom/)
[info] Starting embedded Cassandra server
........
[info] Cassandra server running at 127.0.0.1:4000
[info] Service locator is running at http://localhost:8000
[info] Service gateway is running at http://localhost:9000
[info] Compiling 2 Java sources to /Users/myfear/projects/first-lagom/helloworld-api/target/scala-2.11/classes...
[info] Compiling 1 Java source to /Users/myfear/projects/first-lagom/hellostream-api/target/scala-2.11/classes...
[info] Compiling 2 Java sources to /Users/myfear/projects/first-lagom/hellostream-impl/target/scala-2.11/classes...
[info] Compiling 6 Java sources to /Users/myfear/projects/first-lagom/helloworld-impl/target/scala-2.11/classes...
[info] application - Signalled start to ConductR
[info] application - Signalled start to ConductR
[info] Service hellostream-impl listening for HTTP on 0:0:0:0:0:0:0:0:26230
[info] Service helloworld-impl listening for HTTP on 0:0:0:0:0:0:0:0:24266
[info] (Services started, use Ctrl+D to stop and go back to the console...)

Теперь иди и попробуй свой первый сервис, посетив http: // localhost: 9000 / api / hello / World. Теперь все готово для следующих постов в блоге, где я собираюсь рассказать вам о примере более подробно. Если вы не можете ждать, прочитайте руководство по началу работы с Lagom .