Bahorning boshlanishi va Micronaut - Jang boshlandi

Korxona ilovalarini ishlab chiqish sohasidagi so'nggi arxitektura tendentsiyalarini ko'rib chiqayotganimizda, Microservices amalda arxitektura standartiga aylanganini ko'ramiz. Shu bilan birga, Spring Boot Microservices-ni Java hududida amalga oshirish uchun eng mashhur va keng tarqalgan tizimga aylandi. Bir necha yillar davomida Spring Boot Microservices uchun amalga oshirilgan ishlar soni bo'yicha o'z o'rnini saqlab qoldi va saqlab qoldi. Yaqinda OCI (https://objectcomputing.com) asosiy maqsadi Microservices rivojlanish hayotini soddalashtirish uchun mo'ljallangan Mikronaut ramkasini yaratdi.

Micronaut haqida ko'proq bilish uchun avvalgi maqolamizga murojaat qilishingiz mumkin: Micronaut - Microservices-ning potentsial afishasi.

Eski soqchi (Bahor boshi) va yangi qon (Mikronaut) o'rtasidagi batafsil taqqoslashni bilish qiziqarli mavzu. Ushbu maqolaning bir qismi sifatida men Microservices uchun ba'zi muhim xususiyatlarni yoritaman va ushbu ikkita tizim o'rtasidagi taqqoslama tahlilni taqdim etaman.

1. O'rnatish qulayligi

Ikkala ramkada ham tezkor ravishda boshlash uchun buyruqlar satri vositalari mavjud, biz tegishli buyruqlar satri vositalarini o'rnatib, namunaviy Spring Boot / Micronaut dasturini yaratamiz va sinovdan o'tkazamiz.

Shuningdek, biz SDKMAN-dan foydalanib Spring Boot yoki Micronaut-ni o'rnatamiz, SDKMAN bilan SDK-ning turli xil versiyalarini saqlashimiz mumkin.

Ikkala ramka ham quyi shartlarga ega bo'lishi kerak:

  • Sevimli matn muharriri yoki IDE
  • JDK 1.8 yoki undan keyingi versiya
  • Gradle yoki Maven so'nggi versiyalari

CLI vositasi orqali yaratilgan kod to'g'ridan-to'g'ri IDE-ga kiritilishi mumkin:

  • Bahorgi asboblar to'plami (STS) - bahorgi boot
  • IntelliJ IDEA - bahor va botqoqlik

"Ikkala Spring Boot ham, Mikronaut ham o'rnatish uchun murakkab bo'lmaydi, o'rnatish ko'rsatmalariga rioya qilgan holda osongina o'rnatilishi mumkin, shuning uchun bu erda yaqin raqobat."

2. Tabiiy bulut yoqilgan

Bu erda Mikronaut afzalliklarga ega, chunki eng mashhur bulut xususiyatlari uchinchi tomon bulut xizmatlariga bog'liq holda sukut bo'yicha qo'llab-quvvatlanadi. Ushbu funktsiyalar dasturning o'zi bo'ladi.

Mikronautning shiori - "Aslida bulutga asoslangan ilovalarni ishlab chiqish".

Bulutli xususiyatlarning quyidagi ro'yxati to'g'ridan-to'g'ri Micronaut ish vaqti bilan birlashtirilgan:

  • Xizmatni ochish:
  • Evrika, Konsul yoki ZooKeeper xizmatlarini ochish serverlari qo'llab-quvvatlanadi
  • Kubernetes konteyner ish vaqti sukut bo'yicha qo'llab-quvvatlanadi.
  • Mijozning yukini balanslash:
  • Netflix tasmasini yuklarni muvozanatlash uchun ishlatish mumkin
  • Tarqatilgan konfiguratsiya
  • Tarqalgan Kuzatish
  • Serversiz funktsiyalar

"Spring Boot haqida gap ketganda, yuqorida muhokama qilingan bulutli xususiyatlarni qo'llab-quvvatlash uchun biz uchinchi tomon bulut xizmatlariga yoki kutubxonalarga bog'liq bo'lishimiz kerak, u yuqorida sanab o'tilgan xususiyatlardan birini qo'llab-quvvatlamaydi, shuning uchun Micronautning afzalligi bor bu yerda."

3. Serversiz funktsiyalar

Dasturchilar funktsiyani joylashtiradigan serversiz arxitektura. U erdan boshlab ular butunlay bulutli muhit tomonidan boshqariladi, ya'ni taklif qilish, ijro etish, boshqarish va ishga tushirish.

Ammo Micronaut-ning tez ishga tushirish vaqti, kompilyatsiya vaqti va kam xotira izi bu doirani funktsiyalarni rivojlantirish uchun yaxshi nomzod qiladi va aslida Mikronaut funktsiyalari AWS Lambda va har qanday FaaS tizimiga funktsiyalarni amalga oshirish va joylashtirish uchun maxsus yordamga ega. konteyner vazifasini bajaradi.

"Holbuki Spring Boot dasturidan xotirani ishlatish va ishga tushirish vaqti Micronaut bilan taqqoslaganda unchalik katta emas, shuning uchun Micronaut-ga Serversiz funktsiyalarni bajarish uchun tanlash taklif qilinadi."

4. Tilni qo'llab-quvvatlash

Ikkala tizim uchta dasturlash tilini qo'llab-quvvatlaydi:

  • Java
  • Groovy
  • Kotlin

5. Ilova konfiguratsiyasi

Mikronaut har xil manbalardan konfiguratsiya xususiyatlarini to'g'ridan-to'g'ri IoC konteyneriga qo'shishda Grail va Spring Boot-dan ilhomlangan. Konfiguratsiyalar sukut bo'yicha YAML, JSON, Java xususiyatlarida yoki Groovy fayllarida ta'minlanishi mumkin. Ushbu konventsiya application.yml, application.properties, application.json yoki application.groovy deb nomlangan faylni qidirishdan iborat.

Grail va Bahor singari, Micronaut har qanday mulkni tizim xususiyatlari yoki atrof-muhit o'zgaruvchilari orqali bekor qilishga imkon beradi.

Sukut bo'yicha Mikronautda belgilangan joylardan va ularning ketma-ketligidan xususiyatlarni yuklaydigan PropertySourceLoader dasturlari mavjud:

  • Buyruq satrining argumentlari
  • SPRING_APPLICATION_JSON xususiyatlari (Faqat bahorga bog'liqlik bo'lsa)
  • MICRONAUT_APPLICATION_JSON xususiyatlari
  • Java tizimining xususiyatlari
  • OT muhitining o'zgaruvchilari
  • Atrof-muhitga tegishli har bir xususiyat, masalan dastur-{atrof-muhit}. {Kengaytma} (.properties, .json, .yml yoki .groovy bo'lishi mumkin).
  • Ilovadan maxsus xususiyatlar. {Extension} (bo'lishi mumkin .properties, .json, .yml yoki .groovy)
  • Maxsus xususiyatlar (Tasodifiy qiymatlar)

Spring Boot, barcha mulk joylarini yuqorida qo'llab-quvvatlaydi, bundan tashqari, boshqa mulk joylarini ham qo'llab-quvvatlaydi:

  • Spring Boot global sozlash xususiyatlarini o'zgartiradi
  • Sinovlaringizda @TestPropertySource izohlari.
  • @ SpringBootTest # sinovlarida xususiyatlar izohlash xususiyati.
  • ServletConfig tashabbusi parametrlari.
  • ServletContext tashabbusi parametrlari.
  • Java-dan JNDI atributlari: comp / env.
  • @ Konfiguratsiya darslarida @PropertySource izohlari.
  • Odatiy xususiyatlar (SpringApplication.setDefaultProperties o'rnatilishi bilan belgilanadi).

"Spring Boot, biz uni Micronaut bilan taqqoslaganda, xususiyatlarni boshqarish uchun ko'proq usullarni taqdim etdi."

6. Xabarlar tizimlarini qo'llab-quvvatlash

Spring Boot tashqi xabar almashish tizimlarini birlashtirishni qo'llab-quvvatlaydi, ular:

  • RabbitMQ
  • Apache Kafka
  • ActiveMQ
  • Artemis

Micronaut shuningdek quyidagi mashhur xabar tizimlarini qo'llab-quvvatlaydi:

  • RabbitMQ
  • Apache Kafka

"Mikronaut Apache Kafkaning ichki qo'llab-quvvatloviga ega."

"Ikkala tizim ham mashhur Xabarlar tizimlarini qo'llab-quvvatlaydi, ammo Spring Boot boshqa vositalarni ham qo'llab-quvvatlaydi."

7. Xavfsizlik

Spring Boot sukut bo'yicha quyidagi xavfsizlik mexanizmlarini qo'llaydi:

  • MVC xavfsizligi
  • WebFlux xavfsizligi
  • OAuth2
  • Aktuator xavfsizligi

Micronaut sukut bo'yicha quyidagi xavfsizlik mexanizmlarini qo'llab-quvvatlaydi:

  • Haqiqiylikni tekshirish provayderlari
  • Xavfsizlik qoidalari
  • IP namunaviy qoida
  • Himoyalangan izoh
  • URL manzil xaritasi
  • O'rnatilgan so'nggi nuqta xavfsizligi
  • Haqiqiylikni tekshirish strategiyalari
  • Asosiy haqiqiylik
  • Seansni tasdiqlash
  • JSON veb-token
  • O'rnatilgan xavfsizlik nazoratchilari
  • Tasdiqlangan foydalanuvchini oling
  • Xavfsizlik tadbirlari

"Ikkala tizimda ham xavfsizlik mexanizmlari turlicha va ularning har biri o'z afzalliklariga ega, shuning uchun men bu masalada betarafman".

8. Kirish

Spring Boot va Micronaut ikkalasi ham shu kabi loglarni qo'llab-quvvatlaydi, ular:

  • Kirish
  • Log4j

9. Keshlash

Spring Boot quyidagi keshlash provayderlarini qo'llab-quvvatlaydi:

  • Redis
  • Kassa bazasi
  • Umumiy
  • JCache (JSR-107)
  • EhCache 2.x
  • Hazelcast
  • Infinispan
  • Kofein

Holbuki Micronaut kesh-provayderlarning quyidagi ro'yxatini qo'llab-quvvatlaydi:

  • Kofein - sukut bo'yicha Micronaut uni qo'llab-quvvatlaydi.
  • Redis

"Shubhasiz, Spring Boot kesh-provayderlarni qo'llab-quvvatlashda etakchi hisoblanadi"

10. Boshqaruv va monitoring

Grail, Spring Boot va Micronauts boshqaruviga bog'liq bo'lgan Micronaut dasturlaringizni so'nggi nuqta, maxsus URI orqali kuzatib borish uchun yordam beradi.

  • Yakuniy nuqtalarni yaratish
  • O'rnatilgan tugatish nuqtalari

Ammo Spring Boot nafaqat Endpoints bilan dasturlarni boshqarish va monitoringini qo'llab-quvvatlaydi, balki yana bir qancha usullar mavjud:

  • HTTP ustidan monitoring va boshqarish
  • Boshqaruvning so'nggi nuqtalarini sozlash
  • Boshqaruv serveri portini sozlash
  • Boshqaruv maxsus SSL-ni sozlash
  • Boshqaruv serveri manzilini sozlash
  • HTTP so'nggi nuqtalarini o'chirib qo'yish
  • Monitoring va boshqarish JMS

"Spring Boot, Micronaut bilan taqqoslaganda dasturni boshqarish uchun qo'shimcha imkoniyatlarni taqdim etadi."

Xulosa

Ushbu maqolaning bir qismi sifatida biz Micronaut va Spring Boot ramkalarining turli xususiyatlarini batafsil taqqosladik. Dastlab, Spring Boot ko'p yillar davomida Microservices xizmatida to'plangan katta tajribani qo'llab-quvvatlash bilan etakchi bo'lib kelmoqda. Ammo Micronaut (Young chap) bahorgi Bootga qattiq raqobat berish uchun etarlicha va'da bermoqda.

Umid qilamanki, bu taqqoslash sizga Microservices tizimini rivojlantirishda yaxshiroq va xabardor qaror qabul qilishga yordam beradi.

Bizni kuzatib boring:
https://www.facebook.com/walkingtreetech/
https://www.linkedin.com/company/walking-tree-Texnologiyalar
https://twitter.com/walkingtreetech
https://www.youtube.com/channel/UCH5y9upqT2M7uWwgRWjCWBg

Biz oldinroq Microservices-da ba'zi maqola yozgan edik, siz ularga Microservices-ni yaxshiroq tushunish uchun murojaat qilishingiz mumkin.

Walking Tree-da biz Microservices ekotizimining imkoniyatlari bilan xursandmiz. Ushbu mavzu bo'yicha boshqa maqolalar haqida xabardor bo'lib turing.

Manba: https://walkingtree.tech/spring-boot-vs-micronaut-the-battle-unleashed/