Spring Boot vs Micronaut - Битката отприщи

Докато наблюдаваме последните тенденции в архитектурата в областта на разработката на приложения за предприятия, ние наблюдаваме, че микросервизите станаха фактически архитектурен стандарт. В същото време Spring Boot се превърна в най-популярната и широко използвана рамка за внедряване на микросервизи в областта на Java. Години наред Spring Boot печелеше и запазва челната си позиция по отношение на броя на внедренията за Microservices. Наскоро OCI (https://objectcomputing.com) създаде рамка на Micronaut с основната цел да опрости жизнения цикъл на развитие на Microservices.

За да знаете повече за Micronaut можете да се обърнете към нашата предишна статия: Micronaut - потенциалното момче за плакати за Microservices.

Интересна тема е да се знае подробното сравнение между стара охрана (пролетна обувка) и нова кръв (Micronaut). Като част от тази статия ще покрия някои важни атрибути за микросервизите и ще предоставя сравнителния анализ между тези две рамки.

1. Лесно инсталиране

И двете рамки разполагат с инструментите на командния ред, за да започнем с развитието бързо, можем да инсталираме съответните инструменти на командния ред и да създадем примерното приложение Spring Boot / Micronaut и да го тестваме.

Можем също да инсталираме Spring Boot или Micronaut, като използваме SDKMAN, можем да поддържаме различните версии на SDK с SDKMAN.

И двете рамки се нуждаят от следните предпоставки:

  • Любим текстов редактор или IDE
  • JDK 1.8 или по-нова версия
  • Последни версии на Gradle или Maven

Кодът, генериран чрез инструмента CLI, може да бъде директно импортиран във вашата IDE:

  • Spring Tool Suite (STS) - Пролетна обувка
  • IntelliJ IDEA - Spring Boot & Micronaut

„И Spring Boot, и Micronaut няма да са сложни за инсталиране, могат да бъдат инсталирани лесно, като следвате инструкциите за инсталиране, така че тук е тясна конкуренция.“

2. Роден облак е активиран

Тук Micronaut има предимството, тъй като най-популярните облачни функции се поддържат по подразбиране, без в зависимост от облачни услуги на трети страни. Тези функции ще бъдат част от самото приложение.

Лозунгът на Micronaut е „Развитие на приложение за собствени облаци“.

Следващият списък за специфични за облака функции е пряко интегриран в средата на изпълнение на Micronaut:

  • Откриване на услугата:
  • Поддържат се сървърите за откриване на услуги Eureka, Consul или ZooKeeper
  • Времето за изпълнение на контейнера Kubernetes се поддържа по подразбиране.
  • Балансиране на натоварването от страна на клиента:
  • Netflix лентата може да се използва за балансиране на товара
  • Разпределена конфигурация
  • Разпределено проследяване
  • Функции без сървър

„Когато става въпрос за Spring Boot, за да поддържаме по-горе обсъдени специфични за облака функции, трябва да зависим от облачните услуги или библиотеки на трети страни, той не поддържа нито една от горепосочените функции по подразбиране, така че Micronaut има предимство тук."

3. Без сървърни функции

Архитектура без сървър, където разработчиците ще разгърнат функцията. Оттам нататък те се управляват изцяло от облачната среда, т.е. извикване, изпълнение, контрол и притискане.

Но бързото време за стартиране на Micronaut, подходът за компилиране и време и ниска памет отпечатък правят тази рамка чудесен кандидат за разработване на функции и всъщност функциите на Micronaut имат специална поддръжка за внедряване и разгръщане на функции към AWS Lambda и всяка FaaS система, която поддържа работа функционира като контейнери.

„Като има предвид, че използването на паметта на Spring Boot и времето за стартиране са малко по-високи, когато сравним с Micronaut, така че Micronaut ще бъде насърчаван да избере за внедряване на функции без сървър.“

4. Езикова поддръжка

И двете рамки поддържат трите езика за програмиране:

  • Ява
  • рутинен
  • Kotlin

5. Конфигурации на приложението

Micronaut вдъхновен както от Grails, така и от Spring Boot при интегрирането на конфигурационни свойства от различни източници директно в основния контейнер на IoC. Конфигурациите могат да бъдат предоставени по подразбиране в YAML, JSON, Java свойства или Groovy файлове. Конвенцията е да се търси файл, наречен application.yml, application.properties, application.json или application.groovy.

Подобно на Grails и Spring, Micronaut също позволява отменяне на всяко свойство чрез системни свойства или променливи на средата.

По подразбиране Micronaut има реализациите на PropertySourceLoader, които ще зареждат свойствата от посочените места и тяхната последователност:

  • Аргументи на командния ред
  • Свойства от SPRING_APPLICATION_JSON (Само ако има пролетна зависимост)
  • Свойства от MICRONAUT_APPLICATION_JSON
  • Свойства на системата на Java
  • OS променливи на средата
  • Всяка специфична за околната среда свойства като application- {Environment}. {Extension} (може да бъде .properties, .json, .yml или .groovy)
  • Свойства, специфични за приложението от приложението. {Extension} (може да бъде.properties, .json, .yml или .groovy)
  • Специални свойства (Случайни стойности)

Spring Boot поддържа преди всичко места за собственост, в допълнение към по-горе, той също поддържа и други местоположения на собственост:

  • Spring Boot разработва свойства за глобални настройки
  • @TestPropertySource пояснения за вашите тестове.
  • @ Атрибут за пояснение на свойствата SpringBootTest # на вашите тестове.
  • Параметри на init ServletConfig.
  • Параметри на init ServletContext.
  • JNDI атрибути от java: comp / env.
  • @PropertySource пояснения за вашите класове @Configuration.
  • Свойства по подразбиране (зададени чрез задаване на SpringApplication.setDefaultProperties).

„Spring Boot предостави повече начини за справяне със свойства, когато го сравнихме с Micronaut.“

6. Поддръжка на системи за съобщения

Spring Boot поддържа интегрирането на външни системи за съобщения, те са:

  • RabbitMQ
  • Апаче Кафка
  • ActiveMQ
  • Артемида

Micronaut също така поддържа популярните системи за съобщения, като:

  • RabbitMQ
  • Апаче Кафка

„Micronaut има вградената поддръжка за Apache Kafka.“

"И двете рамки имат поддръжката на популярните системи за съобщения, но Spring Boot поддържа още инструменти."

7. Сигурност

Spring Boot поддържа под механизмите за сигурност по подразбиране:

  • MVC Security
  • WebFlux Security
  • OAuth2
  • Сигурност на задвижването

Micronaut поддържа под механизмите за сигурност по подразбиране:

  • Доставчици за удостоверяване
  • Правила за сигурност
  • Правило за IP модел
  • Защитена анотация
  • Прихващане на URL карта
  • Сигурност на вградените крайни точки
  • Стратегии за удостоверяване
  • Основен авт
  • Удостоверяване на сесията
  • JSON Web Token
  • Вградени контролери за сигурност
  • Изтеглете удостоверения потребител
  • Събития за сигурност

"И двете рамки имат различен механизъм за сигурност и всяка от тях има своите предимства, така че в този случай аз съм неутрален."

8. Дърводобив

Както Spring Boot, така и Micronaut поддържат подобна сеч, те са:

  • Logback
  • Log4j

9. Кеширане

Spring Boot поддържа следните доставчици на кеширане:

  • Redis
  • Couchbase
  • родов
  • JCache (JSR-107)
  • EhCache 2.x
  • Hazelcast
  • Infinispan
  • кофеин

Като има предвид, че Micronaut поддържа следния списък на кеширащите доставчици:

  • Кофеин - по подразбиране Micronaut го поддържа.
  • Redis

„Очевидно Spring Boot е водеща в подкрепата на доставчиците на кеширане“

10. Управление и мониторинг

Micronaut, вдъхновен от зависимостта от управлението на Grails, Spring Boot и Micronauts, добавя поддръжка за наблюдение на вашите приложения чрез крайни точки, специалните URI, които връщат подробности за състоянието на вашето приложение и здравето.

  • Създаване на крайни точки
  • Вградени крайни точки

Но Spring Boot поддържа управление и мониторинг на приложенията не само с Endpoints, но има и още няколко начина:

  • Мониторинг и управление през HTTP
  • Персонализиране на пътеките за управление на крайните точки
  • Персонализиране на порта за сървър за управление
  • Конфигуриране на специфичен за управление SSL
  • Персонализиране на Адрес на сървъра за управление
  • Деактивиране на HTTP крайни точки
  • Мониторинг и управление над JMS

„Spring Boot предоставя допълнителни опции за наблюдение на приложението в сравнение с Micronaut.“

резюме

Като част от тази статия, ние изчерпателно сравнихме различни характеристики на Micronaut и Spring Boot. В началото Spring Boot все още е водещ в много аспекти с подкрепата на богат опит, придобит в работата с микросервизите през годините. Но Micronaut (Young chap) е достатъчно обещаващ и обещаващ, за да даде силна конкуренция на Spring Boot.

Надявам се това сравнение да ви помогне да вземете по-добро и информирано решение, докато решавате рамката за развитие на микросервизите.

Следвай ни в :
https://www.facebook.com/walkingtreetech/
https://www.linkedin.com/company/walking-tree-Technologies
https://twitter.com/walkingtreetech
https://www.youtube.com/channel/UCH5y9upqT2M7uWwgRWjCWBg

По-рано написахме статия за Микросервизите, можете да се обърнете към тях за по-добро разбиране на Микросервизите.

В Walking Tree, ние сме развълнувани от възможностите, които екосистемата на микросервизи предлага. Останете в течение за още статии по тази тема.

Източник: https://walkingtree.tech/spring-boot-vs-micronaut-the-battle-unleashed/