Белгилүү болгондой, Java экосистемасы абдан ар түрдүү жер жана биз туш болгон көйгөйлөрдү чечүүнүн көптөгөн жолдору бар.
Java экосистемасы тез өзгөрүп жатат. Эң олуттуу өзгөрүүлөрдүн айрымдары микросервистердин, контейнерлердин жана булуттагы эсептөөлөрдүн өсүшүнөн келип чыккан. Бул өзгөрүүлөрдү колдоо үчүн көптөгөн жаңы алкактар жана инструменттер пайда болгонун көрдүк.
Мисалы, Spring Boot Java өнүктүрүү үчүн De Facto стандарты болуп калды. Ошол эле учурда, Quarkus сыяктуу башка алкактар боштуктарды толтуруу жана кошумча функцияларды камсыз кылуу үчүн пайда болду.
Эгер сиз Java алкактарынын согушун издеп жатсаңыз, анда Quarkus жана Spring Boot менен жаңылбайсыз. Эки алкактын тең жакшы жана жаман жактары бар, бирок кайсынысы сиздин долбооруңузга ылайыктуу?
Бул блог постунда биз Кваркус менен Жазгы Бутту бири-бирине каршы коюп, кайсынысы алдыда экенин көрөбүз. Бул күрөштө ким жеңет? билүү үчүн оку!
Spring Boot деген эмне?
Spring Boot бул ачык булактуу, популярдуу, жеңил жана иштеп чыгуучуларга ыңгайлуу негиз. Бул жазууну жеңилдетүү үчүн иштелип чыккан жайгаштырылышы мүмкүн болгон Java колдонмолору булутта же иш тактаңызда иштетиңиз.
Spring Boot менен Java менен баштоо оңой жана ал микросервистерге ылайыктуу.
Бул конфигурацияга эмес, кодго көңүл бурууга мүмкүндүк берген кутудан тышкаркы веб-тиркеме алкагы. Spring Boot менен сиз колдонмолоруңузду тез жана оңой баштасаңыз болот.
Spring Boot кодду декларативдик кылуу үчүн колдонула турган Жазгы аннотациялардын топтомун камсыз кылат. Бул бир аз убакыттан бери иштеп келе жатат жана абдан жакшы түзүлгөн негиз болуп саналат жана Apache License 2.0 астында лицензияланган.
Өзгөчөлүктөрү
1. буурчак текшерүү
Жазгы жүктөө төө буурчакыңызды класс деңгээлинде текшерүү мүмкүнчүлүгүн берет, ошондой эле төө буурчактын жеке касиеттерин текшере аласыз. Валидация аннотациялар менен жүргүзүлөт, андыктан эч кандай ыңгайлаштырылган валидация кодун жазуунун кереги жок.
2. Маалыматтарга жетүү
Spring Boot маалыматтарга жетүү үчүн түз жол менен камсыз кылат. Сиз JdbcTemplate, JpaTemplate жана башка шаблонго негизделген берилиштерге кирүү API'лерин маалымат базасына байланыштуу тапшырмаларды аткарууга жардам бере аласыз.
3. MVC
Бул MVC үлгүсүн колдойт жана ал бир нече MVC өзгөчөлүктөр менен камсыз кылат. Бул сизге тез жана оңой веб тиркемелерди түзүүгө жардам берет. Мисалы, сиз REST APIлерди ишке ашыруу үчүн Spring MVC колдоно аласыз, ал эми Spring WebFlux Reactive Streams үлгүсү аркылуу курулган веб тиркемелерди түзүү үчүн колдонсо болот.
4. желе
Spring Boot статикалык ресурстар, статикалык файлдарды тейлөө жана веб-негизделген аутентификация сыяктуу веб-байланыштуу бир катар функцияларды конфигурациялоо мүмкүнчүлүгүн берет.
5. Жазгы булут
Бул булутта жайгаштырыла турган тиркемелерди түзүү мүмкүнчүлүгүн берет. Сиз башка кызматтар менен иштешүү үчүн колдонула турган REST API түзө аласыз. Сиз ошондой эле жаз менен иштеген микросервистерди түзө аласыз, алар бири-бири менен өз ара аракеттенүү жана борбордон ажыратылган архитектураны камсыз кылуу үчүн колдонулушу мүмкүн.
жакшы
- pom.xml файлыңыздагы көз карандылыктарды жөнөкөйлөтөт
- Бул колдонууну жеңилдеткен камтылган tomcat серверин камсыз кылат
- Жазгы жүктөөдө көптөгөн башталгычтар бар, алар күтүү жана жазгы маалыматтар сыяктуу популярдуу технологияларды колдонууну жеңилдетет
- Бул мониторинг, журналга жазуу, коопсуздук ж.б.у.с. сыяктуу кутудан тышкары көптөгөн функцияларды камсыз кылат
- Ал “конфигурация боюнча конвенция” принцибине баш ийет, бул аны баштоону жеңилдетет
жактары
- Жазгы жүктөө бир аз оор жана аны баштоо үчүн жай болушу мүмкүн
- Ал минималдуу колдонмолор менен жакшы иштебейт
- Иштеп чыгуучулар чындап эле "май идиштерди" түзүү үчүн кошумча күч-аракет жумшоо керек.
- Жазгы жүктөө колдонмолорун контейнерге салуу дайыма эле оңой боло бербейт
Quarkus деген эмне?
Quarkus бул GraalVM & OpenJDK HotSpot үчүн ылайыкташтырылган, Java китепканаларынын жана стандарттарынын эң мыктыларынан жасалган Кубернетестин түпкү Java стеки.
Quarkus Java тиркемелерин жазууну кайра кызыктуу кылуу үчүн реактивдүү программалоо моделин микросервистер менен айкалыштырат.
Quarkus менен сиз Java колдонмолорун жаза аласыз:
- Булуттагы жана контейнерге даяр
- Азыраак ресурсту талап кылат
- Тезирээк баштоо
- Жазуу жана сактоо оңой
Эгер сиз Java тиркемелерин тез жана оңой жазууга жардам бере турган Kubernetesтин түпнуска Java стекин издеп жатсаңыз, Quarkus сиз үчүн туура тандоо.
Өзгөчөлүктөрү
1. Контейнердик
Quarkus - бул контейнердин түпкү негизи. Бул ал Kubernetes чөйрөсүндө иштөө үчүн иштелип чыккан дегенди билдирет. Сиз Quarkus тиркемесин түзүп, аны Kubernetes'ке орнотуп, башка Kubernetes негизиндеги колдонмолор менен иштешүү үчүн колдоно аласыз.
2. параллелдүүлүк
Quarkus микросервистерди колдоо үчүн иштелип чыккан. Бул жаңы Java программалоо моделине негизделген, конкуренттүүлүк жана өзгөрбөстүктүн айланасында курулган. Жаңы программалоо модели аткарууну жана ишенимдүүлүктү жогорулатууга жардам берет. Натыйжада, ал бир нече параллелдүүлүккө байланыштуу функцияларды камсыз кылат, мисалы:
- Транзакция ресурстары
- Окуу-жазуу кулпусу
- Окуяга негизделген аткаруу
- кештөө
- Rabbit MQ
- Окуяга негизделген маршруттоо
3. Императивдик жана реактивдүү программалоону бириктирет
Quarkus императивдик жана реактивдүү программалоону колдонуу мүмкүнчүлүгүн берет. Бул жакшыртууга жардам берет кодуңуздун сапаты. Мисалы, сиз тышкы дүйнө менен өз ара аракеттене ала турган тиркемени түзүү үчүн императивдик программалоону колдоно аласыз.
4. Толук стек тиркеме
Бул бөлүштүрүлгөн системаны түзүү үчүн колдонула турган толук стектүү колдонмо. Ал Reactive Streams моделине негизделген жана JVMди билдирүү автобусу катары колдонот. Натыйжада, аны Reactive Streams моделин колдонуу менен курулган бөлүштүрүлгөн системаларды түзүү үчүн колдонсо болот.
5. Performance
Quarkus тез жана ишенимдүү болушу үчүн иштелип чыккан. Ал сизге контейнерлештирилген чөйрөдө иштей турган колдонмолорду түзүүгө жардам берет. Натыйжада, ал аткарууга байланыштуу көптөгөн функцияларды камсыз кылат, мисалы:
- Нөл-көчүрмө байткодду түзүү:
- Ысык кайра жүктөө
- Статикалык шилтеме
- Inline кэштөө
- Жергиликтүү аткаруу
- Процесстер аралык байланыш
жакшы
- Quarkus Spring Bootка караганда бир топ жеңилирээк, бул микросервис үчүн идеалдуу кылат
- Анын ишке киргизүү убактысы тез болгондуктан, булутту жайылтуу үчүн идеалдуу кылат
- Quarkus GraalVM жана HotSpot колдоосу менен жергиликтүү Java стек менен камсыз кылат, бул аны аткарууну талап кылган колдонмолор үчүн идеалдуу кылат.
- Кваркус толугу менен ачык булак жана абдан активдүү коомчулукка ээ
жактары
- Quarkus дагы эле салыштырмалуу жаңы алкак, ошондуктан жазгы жүктөөнүн кээ бир өзгөчөлүктөрү жана жетилгендиги жок.
- Жазгы бутка караганда үйрөнүү кыйыныраак болушу мүмкүн
- Quarkus тиркемелерин контейнерге салуу Spring Boot тиркемелерине караганда кыйыныраак болушу мүмкүн.
Кваркус жазга каршы – Акыркы сөз
Жыйынтыктап айтканда, Spring Boot жана Quarkus экөө тең микросервистерди куруу үчүн эң сонун тандоолор.
Бирок, Quarkus ылдамдыгы жана ресурсту пайдалануу жагынан Spring Bootке караганда кээ бир артыкчылыктарга ээ.
Эгер сиз тез жана жеңил алкак издеп жатсаңыз, Quarkus - эң сонун тандоо. Бирок, эгер сиз өзгөчөлүктөргө бай алкакты кааласаңыз, Spring Boot жакшыраак тандоо.
Таштап Жооп