အင်တာနက်စီးပွားရေးကိုစဉ်ဆက်မပြတ်တိုးချဲ့ခြင်းဖြင့်စနစ်၏ရှုပ်ထွေးမှုလည်းတိုးပွားလာသည်။ ပိုမိုမြင့်မားသောရရှိမှု, ဤဗိသုကာလက်အောက်တွင်သတင်းများအရ 0 န်ဆောင်မှုများအကြားပြတ်ပြတ်သောဆက်သွယ်ရေးအတွက်အရေးကြီးသောယန္တရားတစ်ခုဖြစ်လာသည်။ ဤဆောင်းပါးသည်ဖြန့်ဝေထားသောမက်ဆေ့ခ်ျများနှင့်ဆက်သွယ်ရေးနည်းစနစ်များကိုအကောင်အထည်ဖော်ရန် PHP Microssvice ဗိသုကာလက်ရာများကို အသုံးပြု. Rabbitmq, HTTP နှင့် RPC တို့ပေါင်းစပ်ခြင်းတို့တွင်အသေးစိတ်ရှင်းလင်းချက်များကိုအသေးစိတ်လေ့လာရန်ဤဆောင်းပါးသည်အသေးစိတ်လေ့လာသုံးသပ်ရမည်။
Monolithic application များကိုသေးငယ်သော 0 န်ဆောင်မှုအုပ်စုတစ်ခုသို့ Monolithic applications များကိုခွဲထုတ်သောဗိသုကာပုံစံဖြစ်သည်။ 0 န်ဆောင်မှုတစ်ခုစီကိုသီးခြားစီးပွားရေးလုပ်ငန်းများပတ် 0 န်းကျင်တွင်တည်ဆောက်ထားပြီးလွတ်လပ်သောဒေတာဘေ့စ်, ဖြန့်ကျက်ခြင်းနှင့်ပြုပြင်ထိန်းသိမ်းမှုလုပ်ငန်းစဉ်ရှိသည်။ ပေါ့ပါးသောဆက်သွယ်ရေးယန္တရားများကို HTTP, RPC သို့မဟုတ် Message Queue ကဲ့သို့သော 0 န်ဆောင်မှုများအကြားအသုံးပြုသည်။ ဤဗိသုကာသည်စနစ်ပြောင်းလွယ်ပြင်လွယ်ခြင်း, အမှားအထီးကျန်စွမ်းရည်များနှင့်တုန့်ပြန်မှုမြန်နှုန်းကိုတိုးတက်စေသည်။
ဖြန့်ဝေထားသောပတ် 0 န်းကျင်တွင်သတင်းတပင်များသည်တောင်းဆိုမှုများကို allamchronously တောင်းဆိုမှုများကိုတိုးမြှင့်ခြင်း, RabbitMQ ကိုလက်ရှိတွင်ဖြန့်ဝေထားသော Messaging Messaging Messagedware ကိုကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသောစာနယ်ဇင်းများနှင့်ဘာသာစကားမျိုးစုံကိုထောက်ပံ့သည်။
ပထမ ဦး စွာ, RabbitMQ ကို install လုပ်ရန်လိုအပ်ပြီး operating system ပေါ်တွင် အခြေခံ. ၎င်း၏တရားဝင်ဝက်ဘ်ဆိုက်တွင်တပ်ဆင်ခြင်းညွှန်ကြားချက်များကိုသင်ရယူနိုင်သည်။ တပ်ဆင်မှုပြီးဆုံးသွားသောအခါအခြေခံထုတ်လုပ်သူနှင့်စားသုံးသူပုံစံကိုအောက်ပါ PHP ကုဒ်မှတဆင့်အကောင်အထည်ဖော်နိုင်သည်။
___once __dir __ ။ '/ vendor / autoload.php'; phpamqplib \ connection \ amqpstramonconConnection ကိုသုံးပါ။ phpamqplib \ message \ amqpmessage ကိုသုံးပါ။ // ထုတ်လုပ်သူ $ ဆက်သွယ်မှု = amqpstramconconnection ('localhost', Guest ည့်သည် '', 'ည့်သည်'), $ channel = $ ဆက်သွယ်မှု -> ရုပ်သံလိုင်း (); $ channel-> grique_declare ('ဟဲလို' ', မှားယွင်းသော, မှားယွင်းသော, မှားယွင်းသော, မှားယွင်းသောအယူမှား, $ msg = amqpmessage အသစ် ('Hello World!'); $ Channel-> Basic_Publish ($ msg '', 'ဟဲလို'); ECHO "[X] 'ဟဲလို World!' \ n"; $ channel-> အနီးကပ် (); $ ဆက်သွယ်မှု -> အနီးကပ် ();
// စားသုံးသူ $ ဆက်သွယ်မှု = amqpstramconnection ('localhost', 5672, Guest ည့်သည် ', $ channel = $ ဆက်သွယ်မှု -> ရုပ်သံလိုင်း (); $ channel-> grique_declare ('ဟဲလို' ', မှားယွင်းသော, မှားယွင်းသော, မှားယွင်းသော, မှားယွင်းသောအယူမှား, ECHO "[*] မက်ဆေ့ခ်ျများကိုစောင့်ဆိုင်းရန် Ctrl + C \ n"; $ callback = function ကို ($ msg) { Echo '[X] ကိုလက်ခံရရှိ', $ msg-> body "," \ n ", }; $ Channel-> Basic_consume ('Hello' ', "မင်္ဂလာပါ' ', မှား, မှား, မှားယွင်းသော, မှားယွင်းသော, နေစဉ် ($ channel-is_consuming ()) { $ channel->> စောင့်ဆိုင်း; }
Terminal တွင်အောက်ပါ command များကို run ပါ။
PHP PHOTER.php PHP Consumer.php
အပြေးပြီးနောက်ထုတ်လုပ်သူသည်မက်ဆေ့ခ်ျကိုလူတန်းသို့ပို့ပေးပြီးစားသုံးသူနားထောင်ခြင်းနှင့်စာများကိုရေးဆွဲသည်။ ဤယန္တရားသည်စားသုံးသူပေါင်းစုံတစ်ပြိုင်တည်းပြုပြင်ခြင်းနှင့်စနစ်စွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်။
Microsservices အကြားဆက်သွယ်မှုသည် System စစ်ဆင်ရေးတွင်အဓိကချိတ်ဆက်မှုတစ်ခုဖြစ်သည်။ အောက်ပါတို့သည်အဓိကဆက်သွယ်ရေးနည်းစနစ်များဖြစ်သည်။
နိုင်ငံမဲ့တောင်းဆိုမှုများအတွက်သင့်လျော်သောအသုံးအများဆုံး 0 န်ဆောင်မှုပေးသည့်ဆက်သွယ်ရေး protocol ဖြစ်သည်။ PHP မှအသုံးပြုလေ့ရှိသော http client ကို gozle ။
'ရောင်းချသူ / autoload.php လိုအပ်သည်'; guasthttp \ client ကိုသုံးပါ။ $ client = ဖောက်သည်အသစ် (), $ တုံ့ပြန်မှု = $ client-> တောင်းဆိုမှု ('Get' ',' https://xplos.com '); ECHO $ တုံ့ပြန်မှု -> GETBOIL ();
RPC (Remote လုပ်ထုံးလုပ်နည်းခေါ်ဆိုမှု) သည်ဝေးလံခေါင်သီသော 0 န်ဆောင်မှုများကိုဒေသခံလုပ်ဆောင်ချက်များကဲ့သို့ Microservice များအကြားခေါ်ယူရန်ခွင့်ပြုသည်။ PHP ရှိ RPC ကိုထောက်ပံ့သောစာကြည့်တိုက်များမှာ GRPC နှင့် Thrift ပါဝင်သည်။
quant_once 'ရောင်းချသူ / autoload.php'; helloworld \ hellequest ကိုသုံးပါ။ Helloworld \ HearterCledient ကိုသုံးပါ။ $ client = GourerCledient ('localhost: 50051') 'အထောက်အထားများ' => GRPC \ channelcreedentials :: CluinineSecure (), ]); $ တောင်းဆိုချက် = New Shell New SHOW; $ query-> Setname ('World'); $ တုံ့ပြန်မှု = $ client-> Sayhello ($ တောင်းဆိုမှု); ECHO $ တုံ့ပြန်မှု -> GetMessage (),
ယခင်ဆောင်းပါးတွင် 0 န်ဆောင်မှုများအကြားပြတ်တောင်းဖြန့်ချိမှုများကိုအကောင်အထည်ဖော်ရန် RabbitMQ အသုံးပြုခြင်းကိုပြသသည်။ ဤနည်းလမ်းသည်အားကြီးသော decoupling, အမှားခံနိုင်ရည်ရှိခြင်းနှင့်ကောင်းမွန်သောစကေးနိုင်မှု၏အားသာချက်များရှိသည်။ ၎င်းသည်လုပ်ငန်းခွင်တန်းစီ, သစ်ထုတ်လုပ်ခြင်းနှင့်အမိန့်ထုတ်ယူခြင်းကဲ့သို့သောဖြစ်ရပ်များအတွက်သင့်တော်သည်။
PHP မှတစ်ဆင့် Microssvice ဗိသုကာတစ်ခုတည်ဆောက်ခြင်းနှင့်ဖြန့်ဝေထားသောမက်ဆေ့ခ်ျများတန်းစီခြင်းနှင့်ဆက်သွယ်ရေးယန္တရားများကိုပေါင်းစည်းခြင်းနှင့်ဆက်သွယ်ရေးယန္တရားများကိုပေါင်းစပ်ခြင်းကခေတ်မီမြင့်မားသောစွမ်းဆောင်ရည်စနစ်များကိုတည်ဆောက်ရန်အရေးကြီးသောနည်းလမ်းဖြစ်သည်။ RabbitMQ သည် 0 န်ဆောင်မှုများအကြားထိထိရောက်ရောက်ဆက်သွယ်ရေးကိုထိထိရောက်ရောက်ဖြည့်ဆည်းပေးနိုင်သည်။ HTTP သည်ပုံမှန် 0 န်ဆောင်မှုခေါ်ဆိုမှုများအတွက်သင့်တော်သည်။ ဤနည်းပညာများကိုပေါင်းစပ်ခြင်းသည်စနစ်၏ကြံ့ခိုင်မှုနှင့်တုန့်ပြန်မှုကိုများစွာတိုးတက်စေနိုင်သည်။