[2-1: आरपीसी डिजाइन]।
2024-07-12
한어 Русский язык English Français Indonesian Sanskrit 日本語 Deutsch Português Ελληνικά español Italiano Suomalainen Latina
1. मूलभूताः
1.1 परिभाषा एवं विशेषताएँ
RPC, remote procedure call, remote procedure call, यत् एकस्मिन् यन्त्रे अन्यस्मिन् यन्त्रे उपनियमान् आह्वयन्तं कार्यक्रमस्य व्यवहारं परिभाषयति गुणाः:
दूरस्थं कार्यान्वयनम् स्थानीयं प्रति स्थानान्तरितवान् वस्तुतः दूरस्थ-आह्वानस्य स्थानीय-आह्वानस्य च मध्ये कोऽपि अन्तरः नास्ति ।
cs मोड् इत्यस्य उपयोगेन क्लायन्ट् अनुरोधं आरभते तथा च सर्वरः अनुरोधमापदण्डान् प्राप्त्वा तत् निष्पादयति ।
क्रॉस्-प्रोसेस् तथा क्रॉस्-नेटवर्क-कॉलस्य अन्तर्निहितजटिलतायाः परिरक्षणं अस्मान् व्यावसायिकतर्कस्य विषये अधिकं ध्यानं दातुं शक्नोति
१.२ विशिष्टा कार्यान्वयनरूपरेखा
dubbo(अपाचे अलीबाबा जावा)
मोतन (वेइबो) ९.
टार् (टेन्सेन्ट् इत्यस्य आन्तरिकः) २.
ग्रपच्
मितव्ययम्
वसन्तमेघः openfeign
१.३ अनुप्रयोगपरिदृश्यानि
पार-जालसञ्चारार्थं उपयोक्तुं शक्यते
2. RPC & one call to rpc प्रक्रियायाः प्रमुखाः तकनीकीबिन्दवः
२.१ आरपीसी प्रक्रिया
प्रक्रिया
क्लायन्ट् अन्तरफलकं आह्वयति तथा च प्रॉक्सी वर्गं गत्वा अनुरोधं संयोजयित्वा क्रमाङ्कयति, ततः प्रोटोकॉलं एन्कोड् कृत्वा प्रेषयति
सर्वरः अनुरोधं प्राप्नोति, अनुरोधमापदण्डान् प्राप्तुं प्रोटोकॉलपार्सिंग्, डिसीरियलाइजेशनं च करोति ।
सर्वरः अनुरोधमापदण्डानाम् आधारेण अन्तरफलकं कार्यान्वयनम् आह्वयति ततः प्रतिक्रियां संयोजयति
प्रतिक्रिया अपि तथैव प्रत्यागच्छति
जालमॉड्यूलद्वयं कथं सम्बद्धम् अस्ति ?
पञ्जीकरणकेन्द्रं एकं स्थानं यत्र दत्तांशसञ्चयः भवति, निगरानीयकार्यं च प्रदातुं सर्वोत्तमम् ।पञ्जीकरणकेन्द्रं rpc ढाञ्चात् पृथक् अस्ति सामान्य पञ्जीकरण केन्द्र : zookeeper, nacos, etcd
अन्ये विशेषताः
मार्ग-छिद्रकाः उपलब्धाः प्रदातारः
भारसन्तुलनम् : उपलब्धप्रदातृभ्यः कस्य प्रदातुः उपयोगः करणीयः इति चिनोतु
फ्यूज सीमितकरणम् : प्रवाहनियन्त्रणम्
जालसंसाधनम्
प्रोटोकॉल संसाधन
आरपीसी लाभ
वितरित-अनुप्रयोगानाम् निर्माणं, सेवानां वियुग्मनं, सुलभतया विस्तारं च सुलभं कुर्वन्तु
आरपीसी सामान्यतया दीर्घसंयोजनानां उपयोगं करोति, येन प्रत्येकस्य संचारस्य कृते संयोजनस्य स्थापनायाः आवश्यकता न भवति तथा च संजालस्य उपरि व्ययः न्यूनीकरोति ।
आरपीसी इत्यस्य कृते एकं पञ्जीकरणकेन्द्रं आवश्यकं यत् गतिशीलरूपेण सेवापरिवर्तनानां बोधं कल्पनं च कर्तुं शक्नोति।
समृद्धपृष्ठभूमिप्रबन्धनकार्यं, अन्तरफलकसेवानां एकीकृतप्रबन्धनं, आह्वानकर्तुः कृते कोऽपि धारणा नास्ति, एकीकृतसञ्चालनम्
सुव्यवस्थितः प्रोटोकॉलः, उच्चतरदक्षता, उच्चगोपनीयता, सुरक्षा च
अस्य भारसन्तुलनं, सर्किट् ब्रेकरः, करण्ट्-सीमितं च इत्यादीनि कार्याणि सन्ति ।
२.२ क्रमाङ्कनप्रौद्योगिकी
कोऽपि क्रमाङ्कनरूपरेखा: मूलविचारः डिजाइनः अस्तिएकः क्रमाङ्कनप्रोटोकॉलः ,क्रमाङ्कनं सम्पूर्णं कर्तुं वस्तुप्रकारं, विशेषताप्रकारं, विशेषतामूल्यं च नियतस्वरूपेण द्विचक्रीयबाइटधारायां लिखन्तु , ततः नियतस्वरूपानुसारं वस्तुप्रकारं, विशेषताप्रकारं, विशेषतामूल्यं च एकैकं पठित्वा, एतस्याः सूचनायाः माध्यमेन नूतनं वस्तु पुनः निर्माय विक्रमणं पूर्णं कुर्वन्तु
क्रमबद्धता विधि
JDK देशी क्रमबद्धता
हल्के पाठदत्तांशविनिमय प्रारूप-json/XML
अस्य पठनीयता उत्तमम् अस्ति तथा च बहुभाषासमर्थनसहितं बाइट् सञ्चिका तुल्यकालिकरूपेण विशाला तुल्यकालिकरूपेण अकुशलं भवति तथापि क्रमाङ्कनस्य अनन्तरं बाइट् धारा उद्यमेषु व्यापकरूपेण उपयुज्यते विशेषतः कृते अग्रे-अन्त-तृतीय-पक्षयोः एपिआइ-प्रदानं भवति ।
हेस्सियन् इदं गतिशीलप्रकारं, द्विचक्रीयम्, तथा च पार-भाषा Xu Lihua-रूपरेखा समर्थयति
हेस्सियन् प्रदर्शनं JDK तथा JSON क्रमाङ्कनात् बहु अधिकं कार्यक्षमम् अस्ति । तथा च जनितानां बाइट्-सङ्ख्या अपि अल्पा भवति ।अतीव उत्तमं संगतता स्थिरता च ,अतः आरपीसी-रूपरेखायां दूरस्थसञ्चारस्य कृते हेस्सियन् क्रमाङ्कनप्रोटोकॉलरूपेण अधिकं उपयुक्तः अस्ति ।
protobuf
गूगलेन प्रारब्धः मुक्तस्रोतक्रमपुस्तकालयः बहुभाषासमर्थनेन सह लघुः, कुशलः संरचितः आँकडाभण्डारणस्वरूपः अस्ति ।
द्रुतगतिः, उच्चसंपीडनानुपातः, लघुः आकारः च JSON तथा Hessian इत्येतयोः अपेक्षया बहु लघुः भवति पाठ्यक्रमस्य रङ्गडिस्कस्य प्रारूपे उत्तमः विस्तारः, उन्नयनं, संगतता च भवति ।
पीआरसी क्रमिकीकरणरूपरेखां कथं चिनोति?
चयनकारकाः
सुरक्षा : प्रथमविचारः अस्ति यत् यदि क्रमाङ्कने सुरक्षादुर्बलताः सन्ति तर्हि ऑनलाइनसेवासु आक्रमणस्य सम्भावना वर्तते (JDK मूलभूतक्रमाङ्कीकरणे दुर्बलताः सन्ति
संगतता : संस्करण उन्नयनानन्तरं क्रमाङ्कनप्रोटोकॉलस्य संगतता अतीव उत्तमः अस्ति वा, भवेत् तत् क्रॉस्-प्लेटफॉर्म, क्रॉस्-लैङ्ग्वेज इत्यादयः।
बहुमुखी प्रतिभा: कस्यापि प्रकारस्य क्रमाङ्कनं विक्रमणं च कर्तुं समर्थः सर्वरः अचानकं निश्चितप्रकारस्य पैरामीटर् योजयित्वा सेवा-अन्तरफलक-विधिं आह्वयितुं असमर्थः न भविष्यति ।
प्रदर्शनं दक्षता च : आरपीसी-आह्वानस्य कृते क्रमाङ्कन-विक्रमीकरण-प्रक्रिया आवश्यकी प्रक्रिया अस्ति कार्यप्रदर्शनं दक्षता च आरपीसी-रूपरेखायाः समग्र-प्रदर्शन-दक्षतायाः प्रत्यक्षतया सम्बद्धं भवितुं बाध्यते
स्पेस ओवरहेड: क्रमाङ्कनानन्तरं द्विचक्रीयदत्तांशस्य आकारः यत्किमपि लघुः भवति, तत्किमपि जालपुटेन प्रसारितं दत्तांशं तत्किमपि शीघ्रं भवति प्रतिक्रियासमयः
विचाराः
निर्माणार्थं अतिजटिलानि, बहुगुणयुक्तानि, नीडस्य बहुस्तरयुक्तानि च वस्तुनि परिहरन्तु
अतिबृहत् वस्तुनि परिहरन्तु : बृहत् ताराः, अत्यन्तं विशालाः सरणीः इत्यादयः ।
क्रमाङ्कनरूपरेखायाः समर्थिताः न सन्ति इति मापदण्डरूपेण प्रकारान् पारयितुं परिहरन्तु
वस्तुनां जटिलं उत्तराधिकारसम्बन्धं न भवतु इति निवारयन्तु
२.३ अनुप्रयोगस्तरसञ्चारप्रोटोकॉल-http
२.३.१ मूलभूतसंकल्पनाः
अधिकांशः आरपीसी स्वयमेव http विकसयति तथा च http1.1 इत्यस्य समर्थनं करोति
IO इति किम्
IO इति आन्तरिकसङ्गणकस्य बाह्ययन्त्राणां च मध्ये दत्तांशस्य प्रतिलिपिं कर्तुं प्रक्रिया । संजालदत्तांशस्य आगमनानन्तरं प्रथमं प्रचालनतन्त्रस्य कर्नेल्-सञ्चयक्षेत्रे संगृह्यते, अनुप्रयोगस्य संग्रहणं प्रतीक्षते च ।
धारः प्रेरितः
एज ट्रिगर मोड् इत्यस्य उपयोगं कुर्वन्, यदा निरीक्षिते Socket वर्णके पठनीयघटना भवति तदा सर्वरः केवलं एकवारं epoll_wait तः जागरिष्यति यद्यपि प्रक्रिया कर्नेल् तः दत्तांशं पठितुं पठितकार्यं न आह्वयति तथापि केवलं जागरिष्यति up once अतः, अस्माकं प्रोग्राम् इत्यनेन सुनिश्चितं कर्तव्यं यत् कर्नेल् बफर इत्यस्मिन् दत्तांशः एकदा एव पठितः भवति ।
क्षैतिज उत्प्रेरक
क्षैतिज ट्रिगर मोड् इत्यस्य उपयोगं कुर्वन्, यदा निरीक्षिते Socket इत्यत्र पठनीयः घटना भवति तदा सर्वरः epoll_wait इत्यस्मात् निरन्तरं जागर्ति यावत् कर्नेल् बफर दत्तांशः read function द्वारा पठितः न भवति पठतु। ।
घटना चालितः IO
पठन-अनुरोधं आरभ्य, दत्तांश-पठनात् पूर्वं पठित-सज्ज-घटना-सूचनायाः प्रतीक्षां कुर्वन्तु ।
अतुल्यकालिक IO
पठन-अनुरोधं आरभ्य, पठनस्य समाप्तेः अनन्तरं प्रचालन-तन्त्रेण भवन्तं सूचयितुं प्रतीक्ष्य, कार्यान्वयनार्थं कार्यं पूर्णतया प्रचालन-तन्त्राय समर्पयन्तु
२.३.२ प्रचालनतन्त्रस्य IO मॉडल् कानि सन्ति ?
समकालिक अवरोधन IO समकालिक गैर-अवरोधक IO IO मल्टीप्लेक्सिंग संकेत चालित IO अतुल्यकालिक IO
समकालिक अवरोधन IO
पठनस्य प्रथमः चरणः अवरुद्धः भवति, यत् वयं प्रायः blocking IO इति वदामः अर्थात् यदि read इत्यस्य प्रथमः चरणः read इत्यस्य सज्जतां प्रतीक्षमाणः अवरुद्धः भवति तर्हि वयं blocking IO इति वदामः ।
listenfd = socket ( ) ;
bind ( listenfd) ;
listen ( listenfd) ;
while ( 1 ) {
connfd = accept ( listenfd) ;
int n = read ( connfd, buf) ;