TypeScript مۇلازىمىتىر پروگراممىسى ئېچىش رامكىسى

مەرھابا

بىلوگ ئەسلىگە كىلىپ ئىنتايىن خۇشال بولدۇم، شۇنىڭ بىلەن قىلىۋاتقان ئىشىمنى قويۇپ تۇنجى قىتىم بىلوگ يازماقتىمەن،


مۇلازىمىتىر پروگراممىسى ئېچىش، ئارخىتىكتورى لاھىيەلەش مەن يىللار دەرىجىسىدە ئىزدىنىۋاتقان مۇھىم تۈرنىڭ بىرى،


مەن نۇرغۇن مۇلازىمىتىر ئېچىش رامكىلىرى، پروگرامما تىللىرى، تېخنىكىلىرى بىلەن تونۇشتۇم، ئۇلارنى ئىشلەتتىم، بەزىلىرىنى تەتقىق قىلدىم،

Micro services ئارخىتىكتورى مەن نۇقتىلىق تەتقىق قىلغان تۈرنىڭ بىرى،

مەن نىمىشقا Micro service نى تەتقىق قىلىمەن؟

مەن تەكرار كود يېزىشتىن زىرىكتىم، توختىماي تەكرارلايدىغان ئوپمۇ-ئوخشاش ئىشلار...، ئاندىن باشقىلار بىلەن ھەمكارلىشىپ پروگرامما ئېچىش، پروگراممىرلار بايلىقىدىن ئۈنۈملۈك پايدىلىنىش دىگەندەك،

مىنىڭ بۇ نەرسىنى مىدىرىتىشىم (يېزىپ چىقىشىم) ئوچۇق كودلۇق تۈر يېزىپ لىفىڭلىق رولىنى جارىي قىلدۇرۇش، ياكى ياخشى ئىش قىلىش مەقسىدىم يوق،

مەن ھىچكىمنىڭ "بۇنى قىلىشىڭنىڭ ئەھمىيىتى يوق" دىگىنىگە ئىھتىياجلىق ئەمەس،

مىنىڭچە مىنىڭ تەكرار ئەمگىكىمنىڭ مەن ئۈچۈن ئەھمىيىتى بولسىلا بولدى، (شۇڭا ياقتۇرمىسىڭىز ئاتلاپ ئۆتۈڭ)


مەن ئاخىرىدا يەنىلا ئۆزۈمگە تەۋە بولغان رامكىدىن بىرنى ياساپ چىقىشنى قارار قىلدىم،

مەن بۈگۈن ئۇزۇن گەپ قىلماقچى ئەمەس، پەقەت ئۆزۈمنىڭ ئىددىيەسىنى ۋە ئەمگىكىنى كۆپچىلىك بىلەن ئورتاقلاشماقچى،


Q: بۇ نىمە؟

A: بۇ بىر خىل مۇلازىمىتىر ئېچىش رامكىسى، يەنى قوش يۆنىلىشلىك Rpc ئىددىيەسىنى ئەمەلگە ئاشۇرغان رامكا، بۇنىڭ بىلەن مۇلازىمىتىر پروگراممىىرىنى ئېچىش، كونكىرىت ئىيىتقاندا كۆچمە ئۈسكۈنە ۋە باشقا ئۈسكۈنىلەر ئۈچۈن Web api تەمىنلەش، مۇلازىمەت تەمىنلەش قاتارلىقلارنى قىلغىلى بولىدۇ،

Q: بۇ رامكىنىڭ مەقسىدى باشقا پروگرامما تىللىرىدىكى قانداق رامكىلارغا توغرا كېلىدۇ؟

A: جاۋاب: PHP laravel, think php, Asp.net core mvc, java spring, node.js express, socket.io, يەنە باشقا تىللاردىكى Web ئېچىش رامكىلىرىغا توغرا كېلىدۇ.

Q: يۇقارقى رامكىلار بىلەن قانداق كونكىرىت پەرقى بار؟ مەن بۇنى ئىشلەتسەم نىمىگە ئىرىشەلەيمەن؟

A: نەچچە مىنۇت ئىچىدە 0 دىن باشلاپ ئۈندىداردەك پاراڭلىشىش يۇمشاق دېتالى ياسىيالايمىز، نەق ۋاقىت خەۋەرلىشىش (Real time communication) پروگراممىلىرى (مەسىلەن سودا سىستېمىسى، تاماق بۇيرۇتۇش سىستېمىسى، )، HTML5 ۋە ئۈندىدار ئويۇن مۇلازىمىتىرى، كۆچمە ئۈسكۈنىلەر ئويۇن مۇلازىمىتىرى، قوش يۆنىلىشلىك ئالاقە قىلىدىغان پروگراممىلار قاتارلىقلار،

بۇنىڭ باشقا Web رامكىلىرىدىن ئالاھىدە پەرقى بولسا بىز ئاساسلىق قوش يۆنىلىشلىك ئالاقىنى نىشان قىلدۇق، بىز Http كىلىشىمى ئورنىغا Web socket, tcp socket  ۋە باشقا كىلىشىملەرنى ئىشلەتتۇق، سىز قىسقا ۋاقىت ئىچىدە ئاز كود بىلەن زامانىۋىي قوش يۆنىلىشلىك ئالاقە شەكلىدىكى قالتىس پروگراممىلارنى تىز سۈرئەتتە ياساپ چىقالايسىز، بۇلارنى ئادەتتىكى web رامكىلىرىدا قىلىش قولايسىز.


تۆۋەندىكىسى بۇ رامكىنىڭ ئاساسلىق قۇرۇلمىسى.

Untitled Diagram.png



رامكىدىكى مۇھىم ئۇقۇملار:

- Rpc مۇلازىمىتىرى، خۇددى http مۇلازىمتىرىغا ئوخشاش بۇنىڭدىمۇ ئابىستىراكىت ھالدا Rpc مۇلازىمىتىرى ئۇقۇمى بار، Rpc مۇلازىمىتىرى بولسا Rpc ئابونىتلىرىنى (client) لارنى باشقۇرۇش، Rpc ئابونىتلىرىنىڭ ئىلتىماسىنى قوبۇل قىلىش، rpc ئۇلىنىشىنى باشقۇرۇش، Rpc ئابونتى ئىچىدىكى فۇنكىسىيەلەرنى چاقىرىش قاتارلىقلارغا مەسئۇل.

- Rpc ئابونتى، Http ئابونتىغا ئوخشاش بۇنىڭدىمۇ ئابىستىراكىت ھالدا Rpc ئابونتى ئۇقۇمى مەۋجۇت، Rpc ئابونتى بولسا Rpc مۇلازىمىتىرىغا ئۇلىنىش، مۇلازىمىتىردىكى فۇنكىسىيەنى چاقىرىپ ئىشلىتىش جەريانىدىكى ئالاقە كىلىشىمىنى بىر تەرەپ قىلىش قاتارلىقلارغا مەسئۇل،

- Rpc تىرانسىپورت قەۋىتى، يۇقارقى ئىككى تۈردە بىز "ئابىستىراكىت" ئۇقۇمىنى قوشتۇق، Rpc مۇلازىمىتىرى ۋە Rpc ئابونتى پەقەت ئۆزىنىڭ Rpc كىلىشىمىنى (protocol) نى ئەمەلگە ئاشۇرغان، ئۇلارنىڭ ھىچقانداق كونكىرىت ئالاقىلىشىش ئىقتىدارى يوق، پەقەت تەييار بار بولغان ئۇلىنىش ئۈستىدە ئۆزىدىكى كىلىشىم ئارقىلىق قارشى تەرەپ بىلەن ئالاقە قىلىدۇ، ئۇنداقتا بۇ يەردىكى ئۇلىنىشنى كىم تەمىنلەيدۇ؟ يەنى كىم تىرانسىپورت ئىقتىدارىنى تەمىنلەيدۇ؟ Rpc تىرانسىپورت قەۋىتى دەل Http long pooling, Web socket, Tcp socket قاتارلىقلار ئاساسىدا خەۋەرلىشىش قەۋىتى بىلەن تەمىنلەيدۇ،

Rpc مۇلازىمىتىرى ۋە ئابونتى قارشى تەرەپنىڭ ئىشلىتىشى ئۈچۈن بىر يۈرۈش فۇنكىسىيەلەرنى قارشى تەرەپكە تەمىنلەيدۇ.


ئۇنداقتا بىر پروگراممىنىڭ مۇلازىمىتىر بۆلىكى ئەڭ ئاز بولغاندا قانداق بۆلەكلەردىن تۈزۈلىدۇ؟

(تۆۋەن قاتلامدىن يۇقىرى قاتلامغا تەرتىپ بويىچە)

- بىر ياكى بىر قانچە Rpc تىرانسىپورت قەۋىتى، مەسىلەن web socket, tcp socket دىگەندەك،

- بىر دانە Rpc مۇلازىمىتىرى، يەنى Rpc تىرانسىپورت قەۋىتى ئۈستىدە Rpc مۇلازىمىتىرى بولىدۇ، Rpc مۇلازىمىتىرى ئۆزىنىڭ ئاستىدىكى Rpc تىرانسىپورت قەۋىتى ئارقىلىق Rpc ئابونىتلىرىنىڭ ئۇلىنىشىنى ساقلايدۇ، Rpc ئابونىتلىرى بىلەن ئالاقە قىلىدۇ، ئۆزىگە ئۇلانغان بارلىق Rpc ئابونىتلىرىنى باشقۇرىدۇ، بىز Rpc تىرانسىپورت قەۋىتى بىلەن Rpc مۇلازىمىتىرىنى باغلايمىز، يەنى "مۇشۇ Rpc مۇلازىمىتىر مۇشۇ تىرانسىپورت قەۋىتىنى ئىشلەتسۇن" مەنىسىدە،

بىر دانە Rpc مۇلازىمىتىرى بىرلا ۋاقىتتا بىر قانچە Rpc تىرانسىپورت قەۋىتىگە باغلانسا بولىدۇ، (بىرلا ۋاقىتتا web socket, tcp socket كىلىشىملىرىنى تەڭلا ئىشلىتەلەيدۇ)


ئۇنداقتا بىر پروگراممىنىڭ ئابونىت بۆلىكى ئەڭ ئاز بولغاندا قانداق بۆلەكلەردىن تۈزۈلىدۇ؟

- بىر دانە (بىرلا قىتىمدا بىر دانە) Rpc توشۇش قەۋىتى،

- Rpc ئابونتى،


  

جەمئىي 0 ئىنكاس يېزىلدى
جۇغلانما ئەگەشكۈچى ئەگەشكىنى
12 2 0
Follow Learnfans

Github Weibo