Акка http против Лагом

Пожалуйста, помогите понять
1) Выбор Akka http или Lagom для создания микросервиса
2) Есть ли разница между REST API и микросервисом на основе Akka http/Lagom.

Спасибо


person Tilak    schedule 26.06.2017    source источник


Ответы (1)


Это очень широкий вопрос, но позвольте мне дать вам несколько советов.

1) Akka — это библиотека (или, как ее называет команда Akka, набор инструментов), а Lagom — это фреймворк. Какая разница? Процитируем Мартина Фаулера:

Библиотека — это, по сути, набор функций, которые вы можете вызывать, в наши дни обычно организованных в классы. [..]

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

Akka предоставляет вам все необходимое для написания реактивного микросервиса, если вы знаете, что делаете. Лагом рассказывает, в некоторой степени, как написать реактивный микросервис. Например, он предписывает определенную структуру проекта и предоставляет готовые реализации для общих шаблонов в микрослужбах, таких как поиск службы, автоматические выключатели, асинхронный обмен сообщениями и даже источник событий и CQRS. Вы также можете сделать все это с помощью Akka (на самом деле это то, что Lagom использует внизу), но в конечном итоге вам придется многое реализовать самостоятельно. Если у вас нет большого опыта работы с Akka (а вы, вероятно, нет, иначе вы бы не задавали вопрос), я бы порекомендовал вам попробовать Lagom.

2) Микросервис — это приложение, связанное с одной бизнес-возможностью и взаимодействующее с другими микросервисами для формирования функциональной системы. REST — это архитектурный стиль для доступа к ресурсам и управления ими. Они полностью независимы, вы можете делать микросервисы без REST и REST без микросервисов. Но вы также можете комбинировать их, то есть создавать свой микросервис как REST-сервис. Это, или, точнее, REST через HTTP и использование JSON, очень распространено для общедоступных микросервисов, которые не только взаимодействуют с другими микросервисами, но и вызываются из веб-интерфейсов или произвольных клиентских приложений. Так что да, разница есть, на самом деле они не имеют ничего общего друг с другом, но вы можете использовать Lagom (или Akka HTTP) для построения REST API.

person lutzh    schedule 26.06.2017
comment
Спасибо, лутж. Я попробую Лагом для начала. - person Tilak; 30.06.2017