प्रौद्योगिकी साझेदारी

द्वारम्

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

द्वार मूल अवधारणाएँ

1. मार्गः
मार्गनिर्धारणं द्वारस्य मूलभूततमः भागः अस्ति मार्गनिर्धारणसूचनायां ID, गन्तव्य-URI, आश्वासन-कारखानानां समुच्चयः, Filters-समूहः च सन्ति । यदि प्रतिपादनं सत्यं भवति तर्हि अनुरोधितः URL विन्यस्तमार्गेण सह मेलति ।
2. विधेयम्
     Assert function अनुमन्यतेविकासकाः परिभाषयन्तिमेलनम्‌Http अनुरोधेयत्किमपि सूचना, यथा अनुरोधशीर्षकाणि, मापदण्डानि च इत्यादयः ।
3. छाननम्
Filter इति Gateway Filter तथा Global Filter इति विभक्तम् अस्ति । फ़िल्टर अनुरोधं प्रतिक्रियां च संसाधितुं शक्नोति ।


gatewayquick आरम्भः

1. आश्रितानां परिचयं कुर्वन्तु
नोट्: spring-webmvc इत्यस्य आश्रयैः सह विग्रहं करिष्यति, अतः spring-webmvc इत्यस्य बहिष्कारस्य आवश्यकता वर्तते ।
2. yml विन्याससञ्चिकां लिखन्तु
server.port = 8088 इति अस्ति गेटवे अभिगमन पोर्ट
वसन्त.अनुप्रयोग.नाम अस्ति वर्तमानद्वारसेवायाः सेवानाम
मार्गनिर्धारणनियमाः gateway.routes इत्यस्य अधः परिभाषिताः सन्ति:
id अस्य मार्गनिर्धारणनियमस्य नाम gateway.routes इत्यस्य अधः बहवः मार्गनिर्धारणनियमाः भवितुम् अर्हन्ति
url: वर्तमानद्वारस्य सेवां प्राप्नुवन्तु, . कस्मिन् url कृते अग्रे प्रेषितव्यम् ?, प्रथमं, अहं सर्वाणि अनुरोधाः द्वारे अग्रे प्रेषयितुं न शक्नोमि ।
विधेय: कदा अनुरोधः वर्तमानद्वारं प्राप्नोति(अतः एतत् अनुरोधं वर्तमानद्वारस्य IP + पोर्ट् सङ्ख्यां अवश्यमेव आनेतव्यम् । सूचना, तदनन्तरं स्लैश /, अतः द्वारं पूर्वनिर्धारितं कर्तुं शक्नोति यत् एषा सूचना उपलब्धा अस्ति,एतस्याः सूचनायाः विधेयेषु विचारस्य आवश्यकता नास्ति), यदि पोर्ट् सङ्ख्यायाः अनन्तरं url /order-serv/** इत्यनेन आरभ्यते ।,अतः केवलं उपरिष्टात् url इत्यस्य ip + पोर्ट् प्रति अग्रे गच्छन्तु . तथा स्लैश / .अनन्तरं सर्वे मार्गाः न निष्कासिताः भविष्यन्ति, ततः http://localhost:8020/order-serv/order/add इति पते अग्रे प्रेष्यते
(order-serv इति सेवानाम यत् आदेशसेवायाः /order/add इत्यस्मात् आरभ्य पता न भवति, तथा च इन्वेण्ट्री सेवायाः अपि /order/add इत्यस्मात् आरभ्य पता न भवति, अतः द्वारे प्रेषिताः अनुरोधाः अग्रे प्रेषणीया सेवायाः नाम वहन्ति ।),किन्तु आदेशसेवाया: प्राप्ते अनुरोधे /order-serv/ नास्ति।, केवलं प्रेषितः अनुरोधः http://localhost:8020/order/add अस्ति, अतः प्राप्तुं शक्यते । द्वारं प्रथमस्तरमार्गं निष्कासयन्तु, फ़िल्टरद्वारा उपसर्गान् छानयन्तु
यदि प्रतिपादनं न सन्तुष्टं भवति तर्हि 404 त्रुटिः निवेदिता भविष्यति ।


अत्र वयं विन्यासे अग्रे प्रेषितानि URL-सङ्केतानि हार्ड-कोड् कृतवन्तः यदा सर्वरः प्रवासितः भवति तदा IP-सङ्केतः परिवर्तते अथवा सर्वरः क्लस्टर-मध्ये परिनियोजितः भवति तथा च nginx-माध्यमेन भार-सन्तुलनं करणीयम् .

वयं गेटवे, नाकोस् च एकीकृत्य एतासां समस्यानां समाधानं सुलभतया कर्तुं शक्नुमः

नाकोस एकीकृत करें

1. नाकोस् निर्भरतायाः परिचयं निरन्तरं कुर्वन्तु
2. yml विन्याससञ्चिकां लिखितुं निरन्तरं कुर्वन्तु
(1) nacos एकीकृत्य, केवलं nacos मध्ये वर्तमानद्वारसेवां पञ्जीकरणं कुर्वन्तु, तथा च nacos सेवापतेः खातागुप्तशब्दं च लिखन्तु
(2) मार्गनिर्धारणनियमेषु कस्याः सेवायाः पतां "order-service" (url: order-service) इति सेवानाम्ना परिवर्तयन्तु, तथा च यतः भवन्तः nacos इत्यनेन सह आगच्छति तस्य रिबनस्य भारसंतुलनरणनीत्याः उपयोगं कर्तुं प्रवृत्ताः सन्ति, अतः अग्रे lb:// योजयतु, lb इत्यस्य अर्थः भारसंतुलनभारसंतुलनम् ।
gatewayद्वारः सम्पूर्णं "आदेश-सेवा" इत्यस्य स्थाने एकस्य आदेशसेवायाः IP-सङ्केतेन प्रतिस्थापयिष्यति (यतो हि द्वारं नियमितरूपेण nacos इत्यत्र पञ्जीकृतानां विविधानां सेवानां IP-सङ्केतसूचीं आकर्षयिष्यति)
एतेन समस्यायाः समाधानं भवति यत् यदा सर्वरः प्रवासितः भवति, IP-सङ्केतः परिवर्तते अथवा सर्वरः क्लस्टर्-मध्ये परिनियोजितः भवति तदा विपरीत-प्रॉक्सी-भार-सन्तुलनार्थं nginx-इत्यस्य उपयोगः आवश्यकः भवति
संक्षिप्तमार्गनिर्धारणनियमाः : सम्झौता विन्यासात् अधिकः भवति
(१) नाकोससेवानां स्वयमेव पहिचानस्य कार्यं चालू कृत्वा प्रतिपादननियमानां लेखनस्य आवश्यकता नास्ति।
(2) यदा गेटवे प्रेषितः अनुरोधः nacos इत्यत्र पञ्जीकृतेन सेवानाम्ना आरभ्यते तदा स्वयमेव तस्याः सेवायाः सर्वरं प्रति अग्रे प्रेषितः भविष्यति, प्रथमस्तरस्य मार्गः च स्वयमेव छानितः भविष्यति (हानिः: मार्गनिर्धारणनियमाः लचीलाः न सन्ति पर्याप्तम्‌)
अस्मिन् समये यावत् भवन्तः द्वारसङ्केतस्य/सूक्ष्मसेवा/अन्तरफलकस्य प्रारूपानुसारं तत् अभिगच्छन्ति तावत् भवन्तः सफलं प्रतिक्रियां प्राप्तुं शक्नुवन्ति ।


प्रतिपादन कारखाना

URL आधारितं प्रतिपादनं करणं गेटवे इत्यस्य अन्तःनिर्मितं प्रतिपादनकारखानम् अस्ति ।



कस्टम रूटिंग आश्वासन कारखाना

अत्र कल्प्यते यत् भवान् Query request parameters इत्यस्य आधारेण assertion factory इत्यस्य अनुकूलनं करोति, स्रोतसङ्केते सामग्रीं प्रतिलिखति, ततः आवश्यकतानुसारं परिवर्तयति ।

अनुकूलितं कुर्वन्तु Query request parameters इत्यस्य आधारेण एकः assertion factory, . भवद्भिः AbstractRoutePredicateFactory क्लास् इनहेरिट् कृत्वा apply मेथड् इत्यस्य लॉजिक् पुनः लिखितव्यम् । apply मेथड् मध्ये, भवान् exchange.getRequest() इत्यस्य माध्यमेन ServerHttpRequest ऑब्जेक्ट् प्राप्तुं शक्नोति, येन भवान् request parameters, request method, request header इत्यादीनि सूचनानि प्राप्तुं शक्नोति ।
1. वसन्तघटकं भवितुमर्हति अर्थात् ताम्बूलम्
2. वर्गः अवश्यं योजितव्यः मार्गनिर्देशककारखाना अन्त्यत्वेन
3. अवश्यं वंशजः भवितुमर्हति AbstractRoutePredicateकारखाना
4. विन्याससञ्चिकायां तत्सम्बद्धानि प्रतिपादनसूचनाः प्राप्तुं भवन्तः स्थिरं आन्तरिकवर्गं घोषयितुं विशेषतां च घोषयितुं अर्हन्ति ।
5. संयोजनस्य आवश्यकता अस्ति shortcutFieldOrder इति आ- नह्
6. सत्यं सफलं मेलनं वा असत्यं असफलं मेलनं वा इति तार्किकरूपेण न्यायं कर्तुं apply इत्यस्य उपयोगं कुर्वन्तु।


फ़िल्टर (प्रथमं फ़िल्टर ततः मार्गः)

(1) प्रथमं फ़िल्टरद्वारा अनुरोधितं URL-सङ्केतं संसाधयन्तु, अथवा अनुरोधशीर्षकाणि, कुकीज इत्यादीनि काश्चन सूचनाः योजयन्तु, विलोपयन्तु, परिवर्तयन्तु च।

(2) ततः nacos सेवासूचिकायाः ​​माध्यमेन तत्सम्बद्धं सर्वरं प्रति मार्गं कुर्वन्तु

फ़िल्टरस्य भूमिका : यदा द्वारे अनुरोधः आगच्छति तदा वयं व्यावसायिकतर्केन अनुरोधं संसाधितुं शक्नुमः ।

उदाहरणतया:

(1) अग्रभागेन छानकं गच्छन्तुमार्गस्य प्रथमस्तरं निष्कासयन्तु

(2) भवन्तः द्वारे आगच्छन्तीषु सर्वेषु अनुरोधेषु अनुरोधशीर्षकं योजयितुं शक्नुवन्ति, ततः सामग्रीं अन्तः सेट् कर्तुं शक्नुवन्ति ।

(३) द्वारे आगच्छन्तानाम् सर्वेषां अनुरोधानाम् इत्यादीनां कृते कुकी सेट् कर्तुं शक्नुवन्ति।

सर्वेषां अन्तःनिर्मित-छिद्राणां विवरणाय कृपया आधिकारिकजालस्थलं पश्यन्तु

https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#गेटवेफिल्टर-कारखानानि

अत्र केचन कोड उदाहरणानि सन्ति ।

परीक्षणसङ्केतं द्वारद्वारं प्रति प्रेष्यते

मार्गद्वारा निम्नलिखित @GetMapping पतां प्रति मार्गं कुर्वन्तु, अनुरोधं प्राप्तुं प्रतिक्रियां च प्राप्तुं निम्नलिखितसङ्केतं च

उदाहरणम् १: १.

उदाहरणम् २
उदाहरणम् 3
पूर्ववर्ती URL-सङ्केतः द्वारे प्रेषितः, छानितः, /mall-order इत्यनेन उपसर्गः च भवति । अस्मिन् समये सर्वरस्य प्रतिक्रियां प्राप्तुं, एतत् अवश्यमेव सेट् कर्तव्यं यत् प्रेषिताः सर्वे अनुरोधाः /mall-order वहन्ति ।एवं प्रकारेण सर्वरः सामान्यतया द्वारेण मार्गितान् अनुरोधं प्राप्तुं शक्नोति ।
उदाहरणम् ४
वर्तमानद्वारं प्रति प्रेषिताः अनुरोधाः बैडु-जालस्थले प्रेषिताः भविष्यन्ति
३०२ पुनर्निर्देशनस्य अनन्तरं प्रतिक्रियास्थितिसङ्केतः अस्ति


कस्टम् फ़िल्टर



वैश्विक फ़िल्टर

स्थानीय-छिद्रकयोः वैश्विक-छिद्रयोः च अन्तरम् : १.
आंशिकः : आंशिकः कस्यचित् मार्गस्य कृते अस्ति तथा च मार्गे विन्यस्तं कर्तव्यम् ।
वैश्विकः : सर्वेषां मार्गनिर्देशन-अनुरोधानाम् कृते, आवश्यकता नास्तिविन्याससञ्चिकायां विन्यस्तं, . एकदा परिभाषितं कृत्वा तस्य प्रयोगे स्थापितं भवति
अन्तर्निर्मितवैश्विकछिद्रकाः : १.
यदि lb मार्गनिर्देशनसङ्केते समाविष्टं भवति तर्हि उपरि प्रथमस्य वैश्विक-छिद्रकस्य अनुरूपं भार-सन्तुलन-नीतिः स्वयमेव स्वीकृता भविष्यति ।
एतेषां वैश्विक-छिद्रकाणां स्वयमेव न्यायः, प्रक्रिया च भविष्यति, अस्माकं प्रबन्धनं विना।


इष्टवैश्विकछिद्रकाः (मुख्यबिन्दवः) २.

सर्वाणि अभिगम-अनुरोधाः अभिलेखयन्तु, तान् लॉग-रूपेण रक्षन्तु च भवान् इष्ट-वैश्विक-छिद्रकाणां उपयोगं कर्तुं शक्नोति ।

अथवा उपयोक्तृप्रवेशं अनुमतिं च निर्धारयितुं वैश्विक-छिद्रकान् अनुकूलितुं शक्नुवन्ति ।

वैश्विक-छिद्रकाणां अनुकूलनं अतीव सुलभम् अस्ति
1. एकं वर्गं परिभाष्य प्रबन्धनार्थं springIOC पात्रे त्यजन्तु, अर्थात् spring एनोटेशन्स् योजयन्तु । @Compenent
2. GlobalFilter अन्तरफलकं उत्तराधिकारं प्राप्नुवन्तु, अन्तः फ़िल्टर मेथड् पुनः लिखितुं, भवद्भिः केवलं मेथड् इत्यस्य शरीरं अन्तः लिखितव्यम् ।
3. पैरामीटर विनिमयइत्यस्मिन्‌ भरति एतत् द्वारं प्रविशतुसर्वाणि सूचनानि अनुरोधितानि, url पता, शीर्षकं, कुकीजं, मार्गमापदण्डं अन्यसूचनाः च बहिः निष्कासयन्तु, ततः तत्सम्बद्धं कुर्वन्तु व्यावसायिक संसाधन
4. return chain.filter(विनिमय) . अनुरोधं मुक्तं कुरुत


लॉगिंग् इत्यस्य अनुरोधं कुर्वन्तु

गेटवे सूक्ष्मसेवायां, अत्र एतत् आदेशं योजयन्तु यत् लॉगिंग् सक्षमं कर्तुं तथा च गेटवे मार्गेण गच्छन्तीनां सर्वेषां अनुरोधानाम् अभिलेखनं कुर्वन्तु, परन्तु एतत् केवलं कन्सोल् मध्ये आउटपुट् भविष्यति ।



द्वार पार-डोमेन विन्यास

Cross-domain: यदा http अनुरोधः एकस्मिन् IP + एकस्मिन् पोर्ट् मध्ये नास्ति तदा तत् cross-domain इति उच्यते ।

(केवलं समानं IP + समानं पोर्टं समानं डोमेन् उच्यते, उभयम् अपि एकस्मिन् डोमेने भवितुं सन्तुष्टौ भवतः)

1. yml मार्गेण विन्यस्तं कुर्वन्तु , द्वारस्य अग्रिमस्तरस्य विन्यस्तम्

विन्याससामग्री स्वयमेव क्रॉस्-डोमेन् परिवर्तयितुं शक्यते
2. विन्यासवर्गस्य माध्यमेन सेट् कुर्वन्तु


द्वारद्वारेण सह संयुक्तः सेंटिनलः

सेन्टिनेल् इत्यनेन सह मिलित्वा, द्वारे प्रेषितेषु अनुरोधेषु प्रवाहनियन्त्रणस्य अवनयनं कुर्वन्तु ।

सेंटिनलः द्वयोः भागयोः विभक्तः अस्ति
पूर्वापेक्षा : दूरस्थसर्वरतः sentinel client डाउनलोड् कृत्वा संस्थाप्य चालयन्तु
द्वारसेवायाः कृते केवलं निम्नलिखितम् आवश्यकम् अस्ति :
गेटवे सेवायाः विन्याससञ्चिका प्लस् IP + पोर्ट्, सेन्टिनेल् क्लायन्ट् इत्यस्य खातागुप्तशब्दः
एवं प्रकारेण सेन्टिनेल् इत्यस्य प्रवाहनियन्त्रणस्य अवनयनं एकीकृतं भवति ।
sentinel इत्यस्य द्वारसेवानां विशेषनियमाः सन्ति, तस्य अन्तरफलकं नियन्त्रके विधिनां (सेवाप्रवेशानां) कृते प्रवाहनियन्त्रण-अवरोहण-अन्तरफलकात् भिन्नम् अस्ति ।
एतेषां नियमानाम् आधारेण भवान् प्रतिपादनकारखाने वर्तमानप्रवाहं सीमितुं शक्नोति ।
प्रवाहः कस्यचित् IP, दूरस्थक्षेत्रनाम, अनुरोधशीर्षकं, URL मध्ये मापदण्डान्, कुकीमूल्यं च आधारीकृत्य सीमितः भवितुम् अर्हति ।


द्वारेण सह संयुक्तस्य sentinel इत्यस्य प्रतिक्रियासामग्री अनुकूलतां कुर्वन्तु

अस्तिसेन्टिनेल् प्रवाहनियन्त्रणेन द्वारस्तरस्य अवनयनस्य अथवा उड्डयनस्य अनन्तरं सः अनुरोधकर्त्रे निम्नलिखितसामग्रीभिः प्रतिक्रियां दास्यति ।

यदि एतादृशी सामग्री अस्माभिः इष्टा न भवति तर्हि अपवादानाम् प्रतिक्रियायाः मार्गं अनुकूलितुं आवश्यकम् ।तत्र द्वौ मार्गौ

विधिः १: (सरलम्) २.

 

yml विन्यासे उपरिष्टाद् सामग्रीं स्तरेषु लिखन्तु,

वसन्तः . मेघ . सेंटिनल . scg . fallback इति . प्रतिक्रिया शरीरं = '{"कोड":403,"mes":" वर्तमान सीमा "}'
प्रतिक्रिया-शरीरस्य अनन्तरं सामग्री अस्माकं अनुकूलितप्रतिसादसामग्री (json प्रारूपेण) अस्ति । , लिखिता सामग्री प्रतिक्रियायाः विषयवस्तु भवति
मार्ग २ : १.

प्रतिक्रियास्थितिसङ्केतः, प्रतिक्रियाप्रकारं (json प्रारूपेण), प्रतिक्रियासामग्री च ("अवरोहितम्!") सेट् कुर्वन्तु ।



गेटवे उच्च उपलब्धता