2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
अस्य खण्डस्य मुख्यसामग्री गेटवे मॉड्यूल् निर्मातुं, Nacos कृते गेटवे पञ्जीकरणं कर्तुं, परीक्षणार्थं मार्गनिर्धारणं च विन्यस्तं कर्तुं च अस्ति ।
परियोजनायां राइट् क्लिक् कुर्वन्तुNew->Module
, नूतनं मॉड्यूल्, मॉड्यूल् नाम रचयन्तु gulimall-gateway
。
विविधानि सूचनानि पूरयन्तु।
Gateway dependency इति चिनोतु ।
मॉड्यूल् निर्मातुं Create नुदन्तु ।
<dependency>
<groupId>com.atguigu.gulimall</groupId>
<artifactId>gulimall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
यतः गेटवे सेवायाः पञ्जीकरणकेन्द्रस्य विन्यासकेन्द्रस्य च उपयोगः अपि आवश्यकः अस्ति, अतः तस्याः सम्बन्धितसङ्कुलनिर्भरतायाः आवश्यकता भवति, ये सामान्यमॉड्यूले अवलम्ब्य प्राप्ताः भवन्ति
स्टार्टअप क्लास् मध्ये एनोटेशन्स् योजयित्वा स्टार्टअप इत्यस्य अनन्तरं पञ्जीकरणकेन्द्रे सेवा पञ्जीकरणं कर्तुं शक्यते ।
@EnableDiscoveryClient
संसाधननिर्देशिकायां त्रीणि नूतनानि विन्याससञ्चिकाः रचयन्तु ।
1 अनुप्रयोग।गुण
Nacos पञ्जीकरणकेन्द्रसम्बद्धसूचना विन्यस्तं कुर्वन्तु।
server.port=80
spring.cloud.nacos.discovery.server-addr=localhost:8848
spring.application.name=gulimall-gateway
२ बूटस्ट्रैप.गुणाः
Nacos विन्यासकेन्द्रस्य प्रासंगिकसूचनाः विन्यस्यताम् यत् Nacos इत्यत्र पूर्वमेव गेटवे इति नामस्थानं निर्मातव्यम् ।
spring.application.name=gulimall-gateway
spring.cloud.nacos.config.server-addr=localhost:8848
spring.cloud.nacos.config.namespace=405d2201-d62b-4203-80c8-800e9387ad40
3 अनुप्रयोग.yml
अस्मिन् सञ्चिकायां, gateway routing configuration इति लिखन्तु ।
अस्मिन् भागे वयं द्वारस्य विन्यासस्य अभ्यासार्थं वास्तविक-आवश्यकतद्वयं उदाहरणरूपेण गृह्णामः ।
द्वारस्य भूमिका द्वारेण विन्यस्तनियमानुसारं प्राप्तान् अनुरोधान तत्सम्बद्धसेवाभ्यः अग्रे प्रेषयितुं भवति ।
प्रदर्शनस्य सुविधायै, एतादृशी आग्रहः अस्ति इति कल्पयित्वा, यदा ब्राउजरे निम्नलिखित-URL प्रविष्टं भवति तदा अनुरोधः Baidu -इत्यत्र अग्रे प्रेषितः भविष्यति ।
http://localhost/?url=baidu
यदा ब्राउजर् मध्ये निम्नलिखित URL प्रविष्टं भवति तदा अनुरोधः Tencent कृते अग्रे प्रेषितः भविष्यति ।
http://localhost/?url=qq
विन्याससञ्चिकां कथं लिखितव्यम् ?
भण्डारः वसन्त मेघद्वारःआधिकारिक दस्तावेजीकरण, तस्य प्रारूपं पश्यन्तु ।
यतः अस्माकं url इत्यत्र प्रश्नस्थितीनां आधारेण तत्सम्बद्धं अग्रे प्रेषणं कर्तव्यम्, अतः वयं Query इत्यस्य विषये Gateway इत्यस्य assertion configuration document इत्येतत् प्राप्नुमः ।
विन्यासार्थं एतत् दस्तावेजं पश्यन्तु ।
अनुप्रयोग.yml
spring:
cloud:
gateway:
routes:
- id: baidu_test
uri: https://www.baidu.com
predicates:
- Query=url,baidu
- id: qq_test
uri: https://www.qq.com
predicates:
- Query=url,qq
अत्र प्रश्नमापदण्डानां उपयोगाय मार्गनिर्धारणनियमद्वयं परिभाषितम् अस्तिurl
मूल्यं लक्ष्य URI निर्धारयति यस्मिन् अनुरोधः अग्रे प्रेषितव्यः ।
spring.cloud.gateway.routes
: एषा Spring Cloud Gateway इत्यस्य मार्गनिर्देशनविन्याससूची अस्ति ।
एकैकम्routes
मदः एकं मार्गनिर्धारणनियमं परिभाषयति ।
id
: प्रत्येकं मार्गनिर्धारणनियमस्य मार्गानाम् अभिज्ञानाय प्रबन्धनाय च एकः अद्वितीयः ID आवश्यकः भवति ।
uri
: यदा मार्गनिर्देशननियमः मेलति तदा अनुरोधः अस्मिन् URI-सङ्केते अग्रे प्रेषितः भविष्यति ।अत्रhttps://www.baidu.com
तथाhttps://www.qq.com
Baidu तथा Tencent इति जालपुटयोः URL क्रमशः निर्दिष्टाः सन्ति ।
predicates
: एषा मार्गनिर्धारणनियमस्य प्रतिपादनसूची अस्ति यस्याः उपयोगः अयं मार्गनिर्धारणनियमः प्रयोक्तव्यः वा इति निर्धारयितुं भवति । प्रतिपादनं तादृशाः व्यञ्जनाः सन्ति येषां मूल्याङ्कनं अनुरोधस्य मेटाडाटा-आधारितं भवति ।
Query=url,baidu
: एतत् प्रतिपादनं सूचयति यत् यदि अनुरोधे कurl
query parameter, तस्य मूल्यं च तुल्यम् अस्तिbaidu
, ततः एषः मार्गनिर्धारणनियमः प्रवर्तते, अनुरोधः च अग्रे प्रेषितः भविष्यतिhttps://www.baidu.com
。
Query=url,qq
: तथैव यदि क्वेरी पैरामीटर्url
मूल्यम् अस्तिqq
, अनुरोधः अग्रे प्रेषितः भविष्यतिhttps://www.qq.com
。
एवं यदा भवतः अनुप्रयोगः सह सन्देशं प्राप्नोतिurl=baidu
वाurl=qq
प्रश्नमापदण्डानां अनुरोधं कुर्वन् Spring Cloud Gateway उपर्युक्तनियमानुसारं तत्सम्बद्धजालस्थले अनुरोधं प्रॉक्सी करिष्यति ।
ब्राउजर् मध्ये निम्नलिखितपतेः पश्यन्तु।
http://localhost/?url=baidu
यदि भवतां समीपे उपरिष्टात् अन्तरफलकं अस्ति तर्हि तस्य अर्थः अस्ति यत् द्वारसेवाविन्यासः मार्गविन्यासः च सामान्यः अस्ति ।
Gateway इत्यस्य आरम्भकाले त्रुटिः निवेदिता भविष्यति ।
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2024-07-11 15:57:32.988 ERROR 27224 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
कारणं यत् Gateway मॉड्यूल् सामान्यस्य उपरि निर्भरं भवति, तथा च common module mybatis इत्यस्य उपरि स्वस्य निर्भरतां घोषयति mybatis संकुलं प्रारम्भे दत्तांशकोशसम्बद्धानि विन्यासानि अन्वेषयिष्यति, तथा च Gateway परियोजनायाः कृते दत्तांशकोशस्य आवश्यकता नास्ति, अतः प्रासंगिकं विन्यासः नास्ति .
समाधानं द्वारमॉड्यूल् इत्यस्मै कथयितुं यत् स्टार्टअप-समये दत्तांशकोश-सम्बद्धविन्यासानां अन्वेषणस्य आवश्यकता नास्ति, तथा च भवान् स्टार्टअप-वर्ग-टिप्पण्यां घोषयित्वा प्रासंगिक-सङ्कुल-निर्भरतां बहिष्कृत्य कर्तुं शक्नोति
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)