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

अनाज मॉल व्यावहारिक टिप्पणियाँ-27-वितरित घटक-वसंतमेघ-द्वार-निर्माण

2024-07-12

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

अस्य खण्डस्य मुख्यसामग्री गेटवे मॉड्यूल् निर्मातुं, Nacos कृते गेटवे पञ्जीकरणं कर्तुं, परीक्षणार्थं मार्गनिर्धारणं च विन्यस्तं कर्तुं च अस्ति ।

1. एकं गेटवे मॉड्यूल् रचयन्तु

परियोजनायां राइट् क्लिक् कुर्वन्तुNew->Module, नूतनं मॉड्यूल्, मॉड्यूल् नाम रचयन्तु gulimall-gateway

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

विविधानि सूचनानि पूरयन्तु।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

Gateway dependency इति चिनोतु ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु
मॉड्यूल् निर्मातुं Create नुदन्तु ।

2. गेटवे सेवा विन्यासः

1. सामान्यमॉड्यूले निर्भरं भवति

		<dependency>
            <groupId>com.atguigu.gulimall</groupId>
            <artifactId>gulimall-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

यतः गेटवे सेवायाः पञ्जीकरणकेन्द्रस्य विन्यासकेन्द्रस्य च उपयोगः अपि आवश्यकः अस्ति, अतः तस्याः सम्बन्धितसङ्कुलनिर्भरतायाः आवश्यकता भवति, ये सामान्यमॉड्यूले अवलम्ब्य प्राप्ताः भवन्ति

2. सेवा-आविष्कारं आरभत

स्टार्टअप क्लास् मध्ये एनोटेशन्स् योजयित्वा स्टार्टअप इत्यस्य अनन्तरं पञ्जीकरणकेन्द्रे सेवा पञ्जीकरणं कर्तुं शक्यते ।

@EnableDiscoveryClient
  • 1

3. विन्याससञ्चिकां रचयन्तु

संसाधननिर्देशिकायां त्रीणि नूतनानि विन्याससञ्चिकाः रचयन्तु ।

1 अनुप्रयोग।गुण

Nacos पञ्जीकरणकेन्द्रसम्बद्धसूचना विन्यस्तं कुर्वन्तु।

server.port=80
spring.cloud.nacos.discovery.server-addr=localhost:8848
spring.application.name=gulimall-gateway
  • 1
  • 2
  • 3

२ बूटस्ट्रैप.गुणाः

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
  • 1
  • 2
  • 3

3 अनुप्रयोग.yml

अस्मिन् सञ्चिकायां, gateway routing configuration इति लिखन्तु ।

3. गेटवे रूटिंग विन्यास

1. मार्गविन्यासविन्यासः

अस्मिन् भागे वयं द्वारस्य विन्यासस्य अभ्यासार्थं वास्तविक-आवश्यकतद्वयं उदाहरणरूपेण गृह्णामः ।

द्वारस्य भूमिका द्वारेण विन्यस्तनियमानुसारं प्राप्तान् अनुरोधान तत्सम्बद्धसेवाभ्यः अग्रे प्रेषयितुं भवति ।

प्रदर्शनस्य सुविधायै, एतादृशी आग्रहः अस्ति इति कल्पयित्वा, यदा ब्राउजरे निम्नलिखित-URL प्रविष्टं भवति तदा अनुरोधः Baidu -इत्यत्र अग्रे प्रेषितः भविष्यति ।

http://localhost/?url=baidu
  • 1

यदा ब्राउजर् मध्ये निम्नलिखित URL प्रविष्टं भवति तदा अनुरोधः Tencent कृते अग्रे प्रेषितः भविष्यति ।

http://localhost/?url=qq
  • 1

विन्याससञ्चिकां कथं लिखितव्यम् ?

भण्डारः वसन्त मेघद्वारःआधिकारिक दस्तावेजीकरण, तस्य प्रारूपं पश्यन्तु ।

यतः अस्माकं 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

अत्र प्रश्नमापदण्डानां उपयोगाय मार्गनिर्धारणनियमद्वयं परिभाषितम् अस्तिurlमूल्यं लक्ष्य URI निर्धारयति यस्मिन् अनुरोधः अग्रे प्रेषितव्यः ।

  • spring.cloud.gateway.routes: एषा Spring Cloud Gateway इत्यस्य मार्गनिर्देशनविन्याससूची अस्ति ।

  • एकैकम्‌routesमदः एकं मार्गनिर्धारणनियमं परिभाषयति ।

  • id: प्रत्येकं मार्गनिर्धारणनियमस्य मार्गानाम् अभिज्ञानाय प्रबन्धनाय च एकः अद्वितीयः ID आवश्यकः भवति ।

  • uri : यदा मार्गनिर्देशननियमः मेलति तदा अनुरोधः अस्मिन् URI-सङ्केते अग्रे प्रेषितः भविष्यति ।अत्रhttps://www.baidu.comतथाhttps://www.qq.comBaidu तथा Tencent इति जालपुटयोः URL क्रमशः निर्दिष्टाः सन्ति ।

  • predicates : एषा मार्गनिर्धारणनियमस्य प्रतिपादनसूची अस्ति यस्याः उपयोगः अयं मार्गनिर्धारणनियमः प्रयोक्तव्यः वा इति निर्धारयितुं भवति । प्रतिपादनं तादृशाः व्यञ्जनाः सन्ति येषां मूल्याङ्कनं अनुरोधस्य मेटाडाटा-आधारितं भवति ।

    • Query=url,baidu: एतत् प्रतिपादनं सूचयति यत् यदि अनुरोधे कurlquery parameter, तस्य मूल्यं च तुल्यम् अस्तिbaidu, ततः एषः मार्गनिर्धारणनियमः प्रवर्तते, अनुरोधः च अग्रे प्रेषितः भविष्यतिhttps://www.baidu.com

    • Query=url,qq: तथैव यदि क्वेरी पैरामीटर्urlमूल्यम् अस्तिqq, अनुरोधः अग्रे प्रेषितः भविष्यतिhttps://www.qq.com

एवं यदा भवतः अनुप्रयोगः सह सन्देशं प्राप्नोतिurl=baiduवाurl=qqप्रश्नमापदण्डानां अनुरोधं कुर्वन् Spring Cloud Gateway उपर्युक्तनियमानुसारं तत्सम्बद्धजालस्थले अनुरोधं प्रॉक्सी करिष्यति ।

2. सत्यापनम्

ब्राउजर् मध्ये निम्नलिखितपतेः पश्यन्तु।

http://localhost/?url=baidu
  • 1

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

यदि भवतां समीपे उपरिष्टात् अन्तरफलकं अस्ति तर्हि तस्य अर्थः अस्ति यत् द्वारसेवाविन्यासः मार्गविन्यासः च सामान्यः अस्ति ।

त्रुटिलेखः

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

कारणं यत् Gateway मॉड्यूल् सामान्यस्य उपरि निर्भरं भवति, तथा च common module mybatis इत्यस्य उपरि स्वस्य निर्भरतां घोषयति mybatis संकुलं प्रारम्भे दत्तांशकोशसम्बद्धानि विन्यासानि अन्वेषयिष्यति, तथा च Gateway परियोजनायाः कृते दत्तांशकोशस्य आवश्यकता नास्ति, अतः प्रासंगिकं विन्यासः नास्ति .

समाधानं द्वारमॉड्यूल् इत्यस्मै कथयितुं यत् स्टार्टअप-समये दत्तांशकोश-सम्बद्धविन्यासानां अन्वेषणस्य आवश्यकता नास्ति, तथा च भवान् स्टार्टअप-वर्ग-टिप्पण्यां घोषयित्वा प्रासंगिक-सङ्कुल-निर्भरतां बहिष्कृत्य कर्तुं शक्नोति

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
  • 1