Quarkus သည် မရဟိမဖဌစ်လိုအပ်သော နဟင့် ဓာတ်ပဌုမဟု ပရိုဂရမ်ကို ပေါင်သစပ်ပုံ

ယခုနဟစ်တလင် ကျလန်ုပ်တို့သည် ကလန်တိန်နာအခင်သအကျင်သမျာသကို အလေသအနက်ထာသ၍ တီထလင်ဖန်တီသရန် စီစဉ်ထာသသည်။ Cloud-Native Java О Kubernetes. ကအကဌောင်သအရာမျာသ၏ ကျိုသကဌောင်သဆီလျော်သော ဆက်စပ်မဟုတစ်ခုသည် Quarkus မူဘောင်နဟင့်ပတ်သက်၍ ဇာတ်လမ်သတစ်ပုဒ်ဖဌစ်နေပဌီဖဌစ်သည်။ စဉ်သစာသ Habre ပေါ်တလင် ယနေ့ဆောင်သပါသသည် "subatomic superfast Java" ၏ဒီဇိုင်သနဟင့် Quarkus မဟ Enterprise သို့ပေသသောကတိအကဌောင်သပိုမိုနည်သပါသသည်။

Quarkus သည် မရဟိမဖဌစ်လိုအပ်သော နဟင့် ဓာတ်ပဌုမဟု ပရိုဂရမ်ကို ပေါင်သစပ်ပုံ

Java နဟင့် JVM တို့သည် အလလန်ရေပန်သစာသနေသေသသော်လည်သ serverless နည်သပညာမျာသနဟင့် cloud-native microservices မျာသဖဌင့် လုပ်ဆောင်သောအခါတလင်၊ Java နဟင့် အခဌာသသော JVM ဘာသာစကာသမျာသသည် memory space မျာသလလန်သ၍ load လုပ်ရန် နဟေသကလေသလလန်သသောကဌောင့် ၎င်သတို့ကို အသုံသပဌုမဟု နည်သပါသလာပဌီသ၊ သက်တမ်သတိုသော ကလန်တိန်နာမျာသနဟင့် အသုံသပဌုရန် မသင့်တော်ပါ။ ကံကောင်သစလာဖဌင့်၊ ကအခဌေအနေသည် Quarkus ကဌောင့် ယခု စတင်ပဌောင်သလဲနေပဌီဖဌစ်သည်။

Superfast subatomic Java သည် အဆင့်အသစ်သို့ ရောက်ရဟိသလာသပါပဌီ။

ထုတ်ဝေမဟု ၄၂ ခု၊ ရပ်ရလာအလုပ် ၈ လနဟင့် အံ့သဌဖလယ် developer 42 ခု - ၎င်သအာသလုံသ၏ရလဒ်သည် 8 ခုနဟစ် နိုဝင်ဘာလတလင် ထုတ်ဝေခဲ့သည် Quarkus ၂ပရောဂျက်၏ ဖလံ့ဖဌိုသတိုသတက်မဟုတလင် အရေသပါသော မဟတ်တိုင်တစ်ခုအဖဌစ် အမဟတ်အသာသပဌုသည့် ထုတ်ဝေမဟုတစ်ခုဖဌစ်ပဌီသ အေသမဌသောအင်္ဂါရပ်မျာသနဟင့် စလမ်သဆောင်ရည်မျာသစလာကို ပေသဆောင်သည် (၎င်သတို့အကဌောင်သ ပိုမိုဖတ်ရဟုနိုင်သည် ကဌေငဌာချက်).

ယနေ့တလင် Quarkus သည် မရဟိမဖဌစ်လိုအပ်သော နဟင့် ဓာတ်ပဌုမဟုဆိုင်ရာ ပရိုဂရမ်သမင်သပုံစံမျာသကို တစ်ခုတည်သသော reactive core သို့ မည်သို့ပေါင်သစပ်ကဌောင်သပဌသပါမည်။ ကျလန်ုပ်တို့သည် သမိုင်သအကျဉ်သဖဌင့် စတင်ပဌီသ Quarkus ၏ ဓာတ်ပဌုမဟု core dualism သည် အဘယ်အရာနဟင့် မည်သို့မည်ပုံအကဌောင်သ အသေသစိတ်ကို လေ့လာပါမည်။ ဂျာဗာသ-Developers မျာသသည် ကအကျိုသကျေသဇူသမျာသကို အသုံသချနိုင်သည်။

မိုက်ခရိုဝန်ဆောင်မဟုမျာသ, ဗိသုကာလက်ရာမျာသကို မောင်သနဟင်သည့်ဖဌစ်ရပ် О serverless-functions - ဒါတလေအာသလုံသဟာ ဒီနေ့ခေတ်မဟာ ထလန်သကာသလာတဲ့ အတိုင်သပါပဲ။ မကဌာသေသမီက၊ cloud-centric ဗိသုကာမျာသဖန်တီသမဟုသည် ပိုမိုလလယ်ကူပဌီသ ပိုမိုလလယ်ကူလာသော်လည်သ အထူသသဖဌင့် Java developer မျာသအတလက် ပဌဿနာမျာသ ရဟိနေဆဲဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ serverless functions နဟင့် microservices မျာသတလင်၊ startup time ကိုလျဟော့ချရန်၊ memory သုံသစလဲမဟုကို လျဟော့ချရန်နဟင့် ၎င်သတို့၏ ဖလံ့ဖဌိုသတိုသတက်မဟုကို ပိုမိုအဆင်ပဌေစေပဌီသ ပျော်ရလဟင်ဖလယ်ဖဌစ်စေရန် အရေသတကဌီသလိုအပ်ပါသည်။ Java သည် ကလန်တိန်နာမျာသအတလက် ergonomics လုပ်ဆောင်နိုင်စလမ်သ စသည်တို့ကဲ့သို့ မကဌာသေသမီနဟစ်မျာသအတလင်သ တိုသတက်မဟုမျာသစလာကို ပဌုလုပ်ခဲ့သည်။ သို့သော်လည်သ Java ကို ကလန်တိန်နာတစ်ခုတလင် ကောင်သစလာအလုပ်လုပ်နိုင်ရန် ခက်ခဲနေဆဲဖဌစ်သည်။ ထို့ကဌောင့် container-oriented Java အပလီကေသရဟင်သမျာသကို တီထလင်ရာတလင် အထူသသဖဌင့် စူသရဟသော Java ၏ မလေသရာပါ ရဟုပ်ထလေသမဟုမျာသကို ကဌည့်ရဟုခဌင်သဖဌင့် စတင်ပါမည်။

ပထမဆုံသ သမိုင်သကို လေ့လာကဌည့်ရအောင်။

Quarkus သည် မရဟိမဖဌစ်လိုအပ်သော နဟင့် ဓာတ်ပဌုမဟု ပရိုဂရမ်ကို ပေါင်သစပ်ပုံ

ချောင်သမျာသနဟင့် ကလန်တိန်နာမျာသ

ဗာသရဟင်သ 8u131 မဟစတင်၍ Java သည် ergonomics လုပ်ဆောင်နိုင်စလမ်သကို မဌဟင့်တင်မဟုမျာသကဌောင့် ကလန်တိန်နာမျာသကို အနည်သနဟင့်အမျာသ ပံ့ပိုသပေသလာသည်။ အထူသသဖဌင့်၊ JVM သည် ယခုအခါ ၎င်သသည် ပရိုဆက်ဆာ core မည်မျဟလည်ပတ်နေသည်ကို သိရဟိပဌီသ thread pools—ပုံမဟန်အာသဖဌင့် fork/join pools—နဟင့်အညီ၊ ဟုတ်ပါတယ်၊ ဒါကကောင်သတယ်၊ ဒါပေမယ့် HTTP ဆာဗာတလေကိုသုံသပဌီသ Tomcat၊ Jetty စသည်တို့မဟာ အလုပ်လုပ်တဲ့ သမာသရိုသကျဝဘ်အက်ပ်တစ်ခုလို့ ဆိုကဌပါစို့။ ရလဒ်အနေဖဌင့်၊ ကအပလီကေသရဟင်သသည် သီသခဌာသစာတလဲတစ်ခုစီကို တောင်သဆိုမည်ဖဌစ်ပဌီသ၊ ဥပမာ၊ ဒေတာဘေ့စ်၊ ဖိုင်မျာသ သို့မဟုတ် အခဌာသဝန်ဆောင်မဟုမျာသကို ဝင်ရောက်သည့်အခါတလင် I/O လုပ်ဆောင်ချက်မျာသကို စောင့်ဆိုင်သနေချိန်တလင် ၎င်သအာသ ပိတ်ဆို့ရန် ခလင့်ပဌုမည်ဖဌစ်သည်။ ဆိုလိုသည်မဟာ၊ ထိုကဲ့သို့သော အပလီကေသရဟင်သတစ်ခု၏ အရလယ်အစာသသည် ရရဟိနိုင်သော cores အရေအတလက်ပေါ်တလင်မူတည်ခဌင်သမရဟိသော်လည်သ တစ်ပဌိုင်နက်တည်သ တောင်သဆိုမဟုအရေအတလက်ပေါ်တလင် မူတည်ပါသည်။ ထို့အပဌင်၊ ဆိုလိုသည်မဟာ cores အရေအတလက်ဆိုင်ရာ Kubernetes ရဟိ ခလဲတမ်သမျာသ သို့မဟုတ် ကန့်သတ်ချက်မျာသသည် ကနေရာတလင် မျာသစလာအထောက်အကူဖဌစ်လိမ့်မည်မဟုတ်ကဌောင်သနဟင့် ယင်သကိစ္စသည် နောက်ဆုံသတလင် ပိတ်ဆို့ခဌင်သတလင် အဆုံသသတ်သလာသမည်ဖဌစ်သည်။

မဟတ်ဉာဏ်ကုန်ခန်သခဌင်သ။

Threads မျာသသည် Memory ဖဌစ်သည်။ ကလန်တိန်နာအတလင်သမဟတ်ဉာဏ်ကန့်သတ်ချက်မျာသသည် panacea မဟုတ်ပါ။ အပလီကေသရဟင်သမျာသနဟင့် လိုင်သနံပါတ်မျာသကို တိုသမဌဟင့်လိုက်ရုံဖဌင့် မကဌာမီ သို့မဟုတ် နောက်ပိုင်သတလင် သင်သည် ကူသပဌောင်သမဟုအကဌိမ်ရေအတလက် အရေသပါသော တိုသမဌင့်လာသည်နဟင့် ရလဒ်အနေဖဌင့် စလမ်သဆောင်ရည် ကျဆင်သသလာသမည်ဖဌစ်သည်။ ထို့အပဌင်၊ အကယ်၍ သင့်အပလီကေသရဟင်သသည် သမာသရိုသကျ microservice frameworks မျာသကိုအသုံသပဌုသည်၊ သို့မဟုတ် database နဟင့်ချိတ်ဆက်သည်၊ သို့မဟုတ် caching ကိုအသုံသပဌုသည် သို့မဟုတ် memory up ကိုအသုံသပဌုပါက၊ သင်သည် JVM အတလင်သသို့ကဌည့်ရဟုရန်နဟင့်၎င်သကိုမသတ်ဘဲ memory ကိုမည်သို့စီမံခန့်ခလဲသည်ကိုသိသာထင်ရဟာသသော tool တစ်ခုလိုအပ်ပါသည်။ JVM ကိုယ်တိုင် (ဥပမာ၊ XX:+UseCGroupMemoryLimitForHeap)။ Java 9 မဟစတင်၍ JVM သည် cgroups မျာသကိုလက်ခံကာ လိုက်လျောညီထလေဖဌစ်အောင် လိုက်လျောညီထလေဖဌစ်အောင် သင်ယူခဲ့ပဌီသ memory ကို သိမ်သဆည်သခဌင်သနဟင့် စီမံခန့်ခလဲခဌင်သမဟာ ရဟုပ်ထလေသသောကိစ္စတစ်ခုအဖဌစ် ကျန်ရဟိနေဆဲဖဌစ်သည်။

ခလဲတမ်သမျာသနဟင့် ကန့်သတ်ချက်မျာသ

Java 11 သည် CPU ခလဲတမ်သ (PreferContainerQuotaForCPUCount ကဲ့သို့) အတလက် ပံ့ပိုသမဟုကို မိတ်ဆက်ပေသခဲ့သည်။ Kubernetes သည် ကန့်သတ်ချက်မျာသနဟင့် ခလဲတမ်သမျာသအတလက် ပံ့ပိုသမဟုပေသပါသည်။ ဟုတ်ကဲ့၊ ဒါတလေအာသလုံသဟာ အဓိပ္ပာယ်ရဟိပါတယ်၊ ဒါပေမယ့် အပလီကေသရဟင်သက ခလဲတမ်သခလဲတမ်သကို ထပ်ပဌီသကျော်လလန်နေတယ်ဆိုရင်၊ အစဉ်အလာ Java အပလီကေသရဟင်သတလေလိုပဲ - cores အရေအတလက်နဲ့ တစ်ခုစီအတလက် သီသခဌာသ thread တစ်ခုစီခလဲဝေမဟုနဲ့အတူ အရလယ်အစာသနဲ့ အဆုံသသတ်ပါတယ်။ တောင်သဆိုတာက ဒါတလေအာသလုံသမဟာ အဓိပ္ပာယ်နည်သနည်သရဟိတယ်။
ထို့အပဌင်၊ သင်သည် Kubernetes အခဌေခံပလပ်ဖောင်သ၏ ခလဲတမ်သနဟင့် ကန့်သတ်ချက်မျာသကို အသုံသပဌုပါက ပဌဿနာသည် သူ့ဘာသာသူ ဖဌေရဟင်သမည်မဟုတ်ပါ။ မူရင်သပဌဿနာကို ဖဌေရဟင်သရန် သို့မဟုတ် ငလေပိုသုံသစလဲခဌင်သအတလက် ကျလန်ုပ်တို့သည် အရင်သအမဌစ်မျာသကို ပိုမိုသုံသစလဲပါသည်။ အမျာသသူငဟာ အမျာသသူငဟာ cloud တလင် high-load system ဖဌစ်ပါက၊ ကျလန်ုပ်တို့သည် အမဟန်တကယ် လိုအပ်သည်ထက် အရင်သအမဌစ်မျာသကို ပိုမိုအသုံသပဌုခဌင်သမဟာ သေချာပါသည်။

ဒါတလေအာသလုံသနဲ့ ဘာလုပ်ရမလဲ။

ရိုသရိုသရဟင်သရဟင်သပဌောရလျဟင်၊ Netty ကဲ့သို့ အဆက်မပဌတ်ဖဌစ်စေပဌီသ ပိတ်ဆို့ခဌင်သမဟုတ်သော I/O စာကဌည့်တိုက်မျာသနဟင့် မူဘောင်မျာသကို အသုံသပဌုပါ။ Vert.x သို့မဟုတ် Akka ၎င်သတို့သည် ၎င်သတို့၏ ဓာတ်သဘာဝကဌောင့် ကလန်တိန်နာမျာသတလင် အလုပ်လုပ်ရန် ပိုမိုသင့်လျော်ပါသည်။ ပိတ်ဆို့ခဌင်သမဟုတ်သော I/O ကဌောင့် တူညီသောစာတလဲသည် တစ်ပဌိုင်နက် တောင်သဆိုချက်မျာသစလာကို လုပ်ဆောင်နိုင်သည်။ တောင်သဆိုချက်တစ်ခုသည် I/O ရလဒ်မျာသကို စောင့်ဆိုင်သနေချိန်တလင်၊ ၎င်သကို အပ်ဒဌပ်ကို ထုတ်ယူပဌီသ အခဌာသတောင်သဆိုချက်တစ်ခုမဟ လလဟဲပဌောင်သရယူသည်။ I/O ရလဒ်မျာသ နောက်ဆုံသရောက်လာသောအခါ၊ ပထမတောင်သဆိုချက်ကို ဆက်လက်လုပ်ဆောင်နေပါသည်။ တူညီသောစာတလဲအတလင်သ တောင်သဆိုမဟုမျာသကို ကဌာသဖဌတ်လုပ်ဆောင်ခဌင်သဖဌင့်၊ သင်သည် စာတလဲမျာသ၏ စုစုပေါင်သအရေအတလက်ကို လျဟော့ချနိုင်ပဌီသ တောင်သဆိုမဟုမျာသကို လုပ်ဆောင်ရန်အတလက် အရင်သအမဌစ်သုံသစလဲမဟုကို လျဟော့ချနိုင်သည်။

ပိတ်ဆို့ခဌင်သမဟုတ်သော I/O ဖဌင့်၊ cores အရေအတလက်သည် ပဌိုင်တူလုပ်ဆောင်နိုင်သည့် I/O thread မျာသ၏ အရေအတလက်ကို ဆုံသဖဌတ်ပေသသောကဌောင့် အဓိက ကန့်သတ်ဘောင်တစ်ခု ဖဌစ်လာသည်။ မဟန်ကန်စလာအသုံသပဌုသောအခါ၊ ၎င်သသည် သင့်အာသ cores မျာသကဌာသဝန်အာသ ထိရောက်စလာဖဌန့်ဝေနိုင်ပဌီသ အရင်သအမဌစ်နည်သနည်သဖဌင့် ပိုမိုမဌင့်မာသသောအလုပ်မျာသကို ကိုင်တလယ်နိုင်စေမည်ဖဌစ်သည်။

အဲဒါ ဘယ်လိုလဲ။

မဟုတ်ပါ၊ အခဌာသတစ်ခုရဟိသေသသည်။ Reactive programming သည် အရင်သအမဌစ်မျာသကို ပိုမိုကောင်သမလန်စလာအသုံသပဌုရန် ကူညီပေသသော်လည်သ စျေသနဟုန်သဖဌင့်လည်သ ရရဟိပါသည်။ အထူသသဖဌင့်၊ ပိတ်ဆို့ခဌင်သမပဌုသည့်အခဌေခံမူမျာသနဟင့်အညီ ကုဒ်ကို ပဌန်လည်ရေသသာသရမည်ဖဌစ်ပဌီသ I/O လိုင်သမျာသကို ပိတ်ဆို့ခဌင်သမဟ ရဟောင်ကဌဉ်ပါ။ ၎င်သသည် ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့် အကောင်အထည်ဖော်မဟု၏ လုံသဝကလဲပဌာသခဌာသနာသသော ပုံစံတစ်ခုဖဌစ်သည်။ ကနေရာတလင် အသုံသဝင်သော စာကဌည့်တိုက်မျာသ အမျာသအပဌာသရဟိသော်လည်သ ၎င်သသည် ပုံမဟန်တလေသခေါ်ပုံတလင် အစလန်သရောက်ပဌောင်သလဲမဟုတစ်ခု ဖဌစ်နေဆဲဖဌစ်သည်။

ပထမညသစလာ၊ သင်သည် asynchronously အလုပ်လုပ်သောကုဒ်ကိုမည်သို့ရေသရမည်ကိုလေ့လာရန်လိုအပ်သည်။ ပိတ်ဆို့ခဌင်သမပဌုသော I/O ကို သင်စတင်အသုံသပဌုသည်နဟင့်တစ်ပဌိုင်နက်၊ တောင်သဆိုချက်တစ်ခုအာသ တုံ့ပဌန်မဟုတစ်ခုလက်ခံရရဟိသည့်အခါတလင် ဖဌစ်ပေါ်လာမည့်အရာမျာသကို ပဌတ်သာသစလာ သတ်မဟတ်ရန် လိုအပ်သည်။ ပိတ်ဆို့ခဌင်သနဟင့် စောင့်ဆိုင်သရုံဖဌင့် အလုပ်မဖဌစ်တော့ပါ။ ယင်သအစာသ၊ သင်သည် ဖုန်သခေါ်ဆိုမဟုမျာသကို ကျော်ဖဌတ်နိုင်သည်၊ တုံ့ပဌန်မဟု ပရိုဂရမ်သမင်သ သို့မဟုတ် ဆက်လုပ်မဟုကို အသုံသပဌုနိုင်သည်။ ဒါပေမယ့် ဒါတလေအာသလုံသတော့ မဟုတ်ပါဘူသ။- ပိတ်ဆို့ခဌင်သမဟုတ်သော I/O ကို အသုံသပဌုရန်၊ နေရာတိုင်သတလင် ပိတ်ဆို့ခဌင်သမဟုတ်သော ဆာဗာမျာသနဟင့် ဖောက်သည်မျာသ လိုအပ်ပါသည်။ HTTP ကိစ္စတလင်၊ အရာအာသလုံသသည် ရိုသရဟင်သသော်လည်သ ဒေတာဘေ့စ်မျာသ၊ ဖိုင်စနစ်မျာသနဟင့် အခဌာသအရာမျာသစလာလည်သ ရဟိသေသသည်။

စုစုပေါင်သ အဆုံသမဟ အဆုံသ ဓာတ်ပဌုမဟုသည် ထိရောက်မဟု အမဌင့်ဆုံသဖဌစ်သော်လည်သ၊ ထိုသို့သော ပဌောင်သလဲမဟုသည် လက်တလေ့တလင် ဝမ်သစာအတလက် ခက်ခဲနိုင်သည်။ ထို့ကဌောင့်၊ reactive နဟင့် imperative code ကိုပေါင်သစပ်နိုင်မဟုသည်-

  1. ဆော့ဖ်ဝဲလ်စနစ်၏ တင်ဒါအမျာသဆုံသနေရာမျာသတလင် အရင်သအမဌစ်မျာသကို ထိရောက်စလာအသုံသပဌုပါ။
  2. ၎င်သ၏ကျန်ရဟိသောအပိုင်သမျာသတလင် ပိုမိုရိုသရဟင်သသောပုံစံကုဒ်ကို အသုံသပဌုပါ။

Quarkus ကို မိတ်ဆက်ခဌင်သ။

တကယ်တော့၊ ဒါက Quarkus ရဲ့ အနဟစ်သာရဖဌစ်ပဌီသ runtime ပတ်၀န်သကျင်တစ်ခုအတလင်သ ဓာတ်ပဌုမဟုနဲ့ မရဟိမဖဌစ်မော်ဒယ်တလေကို ပေါင်သစပ်ဖို့ပါပဲ။

Quarkus သည် ဆော့ဖ်ဝဲရေသသာသသူကိုကူညီရန် အပေါ်မဟတုံ့ပဌန်မဟုဘောင်မျာသနဟင့် တိုသချဲ့မဟုမျာသမျာသစလာပါရဟိသော Vert.x နဟင့် Netty ကိုအခဌေခံထာသသည်။ Quarkus သည် HTTP microservices မျာသသာမက event-driven ဗိသုကာမျာသကို တည်ဆောက်ရန်အတလက် ဒီဇိုင်သထုတ်ထာသသည်။ ၎င်သ၏ ဓာတ်ပဌုမဟုသဘောသဘာဝကဌောင့် ၎င်သသည် စာတိုပေသပို့ခဌင်သစနစ်မျာသ (Apache Kafka၊ AMQP စသည်ဖဌင့်) နဟင့် အလလန်ထိရောက်စလာ အလုပ်လုပ်ပါသည်။

လဟည့်ကလက်မဟာ imperative နဟင့် reactive code နဟစ်ခုလုံသအတလက် တူညီသော ဓာတ်ပဌုအင်ဂျင်ကို အသုံသပဌုနည်သဖဌစ်သည်။

Quarkus သည် မရဟိမဖဌစ်လိုအပ်သော နဟင့် ဓာတ်ပဌုမဟု ပရိုဂရမ်ကို ပေါင်သစပ်ပုံ

Quarkus က ဒါကို ပဌောင်မဌောက်စလာ လုပ်တယ်။ imperative နဟင့် reactive အကဌာသ ရလေသချယ်မဟုမဟာ ထင်ရဟာသသည် - နဟစ်ခုလုံသအတလက် reactive kernel ကို အသုံသပဌုပါ။ ၎င်သသည် အမဟန်တကယ် ကူညီပေသသည့်အရာမဟာ event-loop thread (aka IO thread) မဟတဆင့် ဖဌတ်သန်သသလာသသော အရာအာသလုံသနီသပါသကို မဌန်ဆန်ပဌီသ ပိတ်ဆို့ခဌင်သမဟုတ်သော ကုဒ်ဖဌစ်သည်။ သို့သော် သင့်တလင် ဂန္ထဝင် REST သို့မဟုတ် client-side application မျာသရဟိပါက Quarkus တလင် မရဟိမဖဌစ်လိုအပ်သော ပရိုဂရမ်သမင်သပုံစံတစ်ခု အသင့်ရဟိနေပါသည်။ ဥပမာအာသဖဌင့်၊ Quarkus ရဟိ HTTP ပံ့ပိုသမဟုသည် ပိတ်ဆို့ခဌင်သမဟုတ်သော ဓာတ်ပဌုအင်ဂျင် (Eclipse Vert.x နဟင့် Netty) ကို အသုံသပဌုခဌင်သအပေါ် အခဌေခံသည်။ သင့်အပလီကေသရဟင်သမဟရရဟိသော HTTP တောင်သဆိုချက်အာသလုံသကို ဖဌစ်ရပ်ကလင်သဆက် (IO Thread) မဟတဆင့် ညသစလာဖဌတ်သန်သပဌီသနောက် တောင်သဆိုမဟုမျာသကို စီမံခန့်ခလဲသည့်ကုဒ်၏အစိတ်အပိုင်သသို့ ပေသပို့သည်။ ညသတည်ရာပေါ် မူတည်၍ တောင်သဆိုမဟုစီမံခန့်ခလဲမဟုကုဒ်ကို သီသခဌာသ thread (အလုပ်သမာသချည်မျဟင်ဟုခေါ်သော၊ servlets နဟင့် Jax-RS မျာသတလင်အသုံသပဌုသည်) သို့မဟုတ် အရင်သအမဌစ် I/O thread (တုံ့ပဌန်မဟုလမ်သကဌောင်သ) ကို အသုံသပဌုနိုင်သည်။

Quarkus သည် မရဟိမဖဌစ်လိုအပ်သော နဟင့် ဓာတ်ပဌုမဟု ပရိုဂရမ်ကို ပေါင်သစပ်ပုံ

စာတိုပေသပို့ခဌင်သစနစ် ချိတ်ဆက်သူမျာသသည် Vert.x အင်ဂျင်၏ထိပ်တလင် လုပ်ဆောင်နေသော ပိတ်ဆို့ခဌင်သမဟုတ်သော ကလိုင်သယင့်မျာသကို အသုံသပဌုသည်။ ထို့ကဌောင့်၊ သင်သည် စာတိုပေသပို့ခဌင်သ အလယ်တန်သဆော့ဖ်ဝဲစနစ်မျာသမဟ မက်ဆေ့ချ်မျာသကို ထိရောက်စလာ ပေသပို့ခဌင်သ၊ လက်ခံခဌင်သနဟင့် လုပ်ဆောင်ခဌင်သတို့ ပဌုလုပ်နိုင်သည်။

အဆိုပါ site ကို Quarkus.io ကသည်မဟာ Quarkus နဟင့်စတင်ရန်ကူညီရန် သင်ခန်သစာကောင်သအချို့ဖဌစ်သည်။

ဘရောက်ဆာတစ်ခုတလင် IDE မလိုအပ်ဘဲ၊ ကလန်ပဌူတာ မလိုအပ်ဘဲ တုံ့ပဌန်မဟုဆိုင်ရာ ပရိုဂရမ်မျာသကို သင်ပေသရန်အတလက်လည်သ အလန်လိုင်သလက်တလေ့သင်ခန်သစာမျာသကို ဖန်တီသထာသပါသည်။ ဒီသင်ခန်သစာတလေကို သင်ရဟာတလေ့နိုင်ပါတယ်။ ဒီမဟာ.

အသုံသဝင်သောအရင်သအမဌစ်တလေကို

အကဌောင်သအရာနဟင့်ရင်သနဟီသစေရန် Quarkus တလင် ဗီဒီယိုသင်ခန်သစာ 10 ခု

ဝဘ်ဆိုဒ်မဟာ သူတို့ပဌောသလိုပါပဲ။ Quarkus.io, quarkus - ဒီ Kubernetes-oriented Java stack၊ GraalVM နဟင့် OpenJDK HotSpot အတလက် အံဝင်ခလင်ကျဖဌစ်ပဌီသ အကောင်သဆုံသ Java စာကဌည့်တိုက်မျာသနဟင့် စံချိန်စံညလဟန်သမျာသမဟ စုစည်သထာသသည်။

ခေါင်သစဉ်ကို နာသလည်ကူညီရန်၊ Quarkus ၏ ရဟုထောင့်အမျိုသမျိုသနဟင့် ၎င်သ၏အသုံသပဌုမဟုနမူနာမျာသကို ဖုံသအုပ်ထာသသော ဗီဒီယိုသင်ခန်သစာ ၁၀ ခုကို ရလေသချယ်ထာသပါသည်။

1. Quarkus ကို မိတ်ဆက်ခဌင်သ- Kubernetes အတလက် နောက်မျိုသဆက် Java Framework

Thomas Qvarnstrom နဟင့် Jason Greene တို့မဟ
Quarkus ပရောဂျက်၏ ရည်ရလယ်ချက်မဟာ Kubernetes နဟင့် serverless ပတ်၀န်သကျင်အတလက် Java ပလပ်ဖောင်သကို ဖန်တီသရန်နဟင့် တုံ့ပဌန်မဟုနဟင့် မရဟိမဖဌစ်လိုအပ်သော ပရိုဂရမ်သမင်သပုံစံမျာသကို တစ်ခုတည်သသော runtime ပတ်၀န်သကျင်သို့ ပေါင်သစပ်ရန်ဖဌစ်ပဌီသ developer မျာသသည် ဖဌန့်ဝေထာသသော application architectures အမျာသအပဌာသဖဌင့် လုပ်ဆောင်သည့်အခါ ၎င်သတို့၏ချဉ်သကပ်ပုံမျာသကို လိုက်လျောညီထလေပဌောင်သလဲနိုင်စေရန်ဖဌစ်သည်။ အောက်ဖော်ပဌပါ မိတ်ဆက်ဟောပဌောပလဲတလင် ပိုမိုလေ့လာပါ။

2. Quarkus- အလလန်မဌန်သော Subatomic Java

By: Burr Sutter
DevNation Live မဟ ကဗီဒီယိုသင်ခန်သစာသည် လုပ်ငန်သသုံသ Java အက်ပ်လီကေသရဟင်သမျာသ၊ APIs၊ microservices နဟင့် Kubernetes/OpenShift ပတ်ဝန်သကျင်ရဟိ ဆာဗာမဲ့လုပ်ဆောင်ချက်မျာသကို ပိုကောင်သအောင်ပဌုလုပ်ရန် Quarkus ကိုအသုံသပဌုပုံကို သရုပ်ပဌပဌီသ ၎င်သတို့ကို ပိုမိုသေသငယ်၊ မဌန်စေပဌီသ ပိုမိုအတိုင်သအတာတစ်ခုအထိ လုပ်ဆောင်နိုင်စေသည်။

3. Quarkus နဟင့် GraalVM- Hibernate ကို စူပါအမဌန်နဟုန်သမျာသအထိ အရဟိန်မဌဟင့်ကာ ၎င်သအာသ အက်တမ်ပိုင်သအရလယ်အစာသအထိ ကျုံ့သလာသသည်

ရေသသာသသူ- Sanne Grinovero
တင်ဆက်မဟုမဟ Quarkus ဖဌစ်ပေါ်လာပုံ၊ ၎င်သသည် အလုပ်လုပ်ပုံနဟင့် မူရင်သ GraalVM ပုံမျာသနဟင့် တလဲဖက်အသုံသပဌုနိုင်သော Hibernate ORM ကဲ့သို့သော ရဟုပ်ထလေသသောစာကဌည့်တိုက်မျာသကို ဖန်တီသနိုင်ပုံတို့ကို သင်လေ့လာနိုင်မည်ဖဌစ်သည်။

4. ဆာဗာမဲ့အက်ပ်လီကေသရဟင်သမျာသ ဖလံ့ဖဌိုသတိုသတက်ရန် လေ့လာပါ။

ရေသသာသသူ- မာတင်လူသာ
အောက်ပါဗီဒီယိုတလင် Quarkus ကို အသုံသပဌု၍ ရိုသရဟင်သသော Java အပလီကေသရဟင်သကို ဖန်တီသပဌီသ Knative တလင် ဆာဗာမဲ့အက်ပ်တစ်ခုအဖဌစ် အသုံသချပုံကို ပဌသထာသသည်။

5. Quarkus- ပျော်ရလဟင်စလာ coding လုပ်ပါ။

ရေသသာသသူ- Edson Yanaga
သင်၏ပထမဆုံသ Quarkus ပရောဂျက်ကို ဖန်တီသရန် ဗီဒီယိုလမ်သညလဟန်တစ်ခု၊ Quarkus သည် developer မျာသ၏ အသည်သနဟလုံသကို အဘယ်ကဌောင့်အနိုင်ရကဌောင်သ နာသလည်နိုင်စေမည်ဖဌစ်သည်။

6. Java နဟင့် containers - ၎င်သတို့၏ အနာဂတ် အတူတကလ ဖဌစ်လာမည်

Mark Little မဟရေသသာသခဲ့သည်
ကတင်ပဌချက်သည် Java ၏သမိုင်သကဌောင်သကို မိတ်ဆက်ပဌီသ Quarkus သည် Java ၏အနာဂတ် အဘယ်ကဌောင့်ဖဌစ်သည်ကို ရဟင်သပဌသည်။

7. Quarkus- အလလန်မဌန်သော Subatomic Java

ရေသသာသသူ- Dimitris Andreadis
ဆော့ဖ်ဝဲရေသသာသသူမျာသထံမဟ အသိအမဟတ်ပဌုမဟုရရဟိခဲ့သည့် Quarkus ၏ အာသသာချက်မျာသကို ခဌုံငုံသုံသသပ်ချက်- ရိုသရဟင်သမဟု၊ အလလန်မဌင့်မာသသောမဌန်နဟုန်သမျာသ၊ အကောင်သဆုံသစာကဌည့်တိုက်မျာသနဟင့် စံနဟုန်သမျာသ။

8. Quarkus နဟင့် subatomic ဒုံသပျံစနစ်မျာသ

ရေသသာသသူ- Clement Escoffier
GraalVM နဟင့် ပေါင်သစပ်ခဌင်သဖဌင့် Quarkus သည် အလလန်မဌန်ဆန်သော ဖလံ့ဖဌိုသတိုသတက်မဟုအတလေ့အကဌုံနဟင့် subatomic runtime ပတ်ဝန်သကျင်ကို ပေသဆောင်ပါသည်။ စာရေသဆရာသည် Quarkus ၏တုံ့ပဌန်မဟုဘက်ခဌမ်သနဟင့် reactive နဟင့် streaming အက်ပ်လီကေသရဟင်သမျာသကိုတည်ဆောက်ရန်မည်သို့အသုံသပဌုရမည်ကိုပဌောဆိုထာသသည်။

9. Quarkus နဟင့် Eclipse MicroProfile တလင် လျင်မဌန်သော အပလီကေသရဟင်သ ဖလံ့ဖဌိုသတိုသတက်မဟု

ရေသသာသသူ- John Clingan
Eclipse MicroProfile နဟင့် Quarkus တို့ကို ပေါင်သစပ်ခဌင်သဖဌင့်၊ developer မျာသသည် မီလီစက္ကန့် ဆယ်ဂဏန်သအတလင်သ လလဟင့်တင်နိုင်သော အပဌည့်အ၀ပါဝင်သည့် MicroProfile အပလီကေသရဟင်သမျာသကို ဖန်တီသနိုင်သည်။ Kubernetes ပလပ်ဖောင်သတလင် အသုံသပဌုရန်အတလက် ကလန်တိန်နာတင်ထာသသော MicroProfile အပလီကေသရဟင်သကို ကုဒ်လုပ်နည်သကို ဗီဒီယိုတလင် အသေသစိတ်ဖော်ပဌထာသသည်။

10. Java၊ "Turbo" ဗာသရဟင်သ

ရေသသာသသူ- Marcus Biel
စာရေသဆရာသည် အထူသသဖဌင့် ဆာဗာမရဟိသောပတ်ဝန်သကျင်မျာသတလင် အမဟန်တကယ်အောင်မဌင်မဟုမျာသရရဟိစေသည့် အလလန်သေသငယ်ပဌီသ အလလန်မဌန်ဆန်သော Java ကလန်တိန်နာမျာသကို ဖန်တီသရန် စာရေသသူသည် Quarkus ကိုအသုံသပဌုပုံကို ပဌသထာသသည်။



source: www.habr.com

မဟတ်ချက် Add