2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Spring Cloud Gateway Spring इकोसिस्टमस्य उपरि निर्मितं API गेटवे प्रदाति, यत्र सन्ति: Spring 5, Spring Boot 2 तथा Project Reactor । Spring Cloud Gateway इत्यस्य उद्देश्यं मार्गनिर्धारणस्य सरलं तथापि कुशलं मार्गं प्रदातुं वर्तते तथा च तेभ्यः केचन गेटवे मूलभूतविशेषताः प्रदाति यथा: सुरक्षा, निगरानीयता/मेट्रिकं लचीलता च।
अधः वयं द्वयोः उदाहरणयोः सह दृष्टान्तं दद्मः ।
Spring Boot संस्करणम्: 2.2.5.RELEASE
वसन्त मेघ संस्करणम्: Hoxton.SR3
अन्यथा निर्दिष्टं न भवति चेत्, सर्वे Spring Cloud रूटीन्स् उपरिष्टात् संस्करणस्य उपयोगं करिष्यन्ति ।
अनुशंसा : अस्य पाठ्यक्रमस्य आरम्भात् पूर्वं यदि भवान् यूरेका-निर्माणस्य विस्तृतपदार्थान् न अवगच्छति तर्हि [Spring Cloud इत्यस्य पञ्जीकरणकेन्द्रस्य Eureka इत्यस्य उपयोगं उदाहरणेन सह ज्ञातव्यम्],भवता अद्यापि न दृष्टं चेत् महत्त्वं नास्ति, केवलं आरम्भार्थं अधोलिखितानि पदानि अनुसृत्य कार्यं कुर्वन्तु ।
यदि भवतां समीपे मातापितृपरियोजना नास्ति (यदि भवता पञ्जीकरणकेन्द्रदृष्टान्तः सम्पन्नः अस्ति, तर्हि भवतां मातापितृपरियोजना भवितुमर्हति), तर्हि कृपया मातापितृपरियोजनां निर्मातुं सरलस्य Maven इत्यस्य उपयोगं कुर्वन्तु:
तस्य निर्माणानन्तरं pom.xml सञ्चिकां उद्घाट्य निम्नलिखितसङ्केतं योजयन्तु ।
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>org.cherry</groupId>
- <artifactId>springcloudproject</artifactId>
- <version>1.0-SNAPSHOT</version>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <java.version>14</java.version>
- <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
- <springboot.version>2.2.5.RELEASE</springboot.version>
- </properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-dependencies</artifactId>
- <version>${spring-cloud.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-dependencies</artifactId>
- <version>${springboot.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
- </project>
src फोल्डर् विलोपयन्तु
मातापितृपरियोजनायाः अन्तर्गतं, नूतनं गेटवे उप-परियोजना, गेटवे, निर्मातुं Spring Initializr इत्यस्य उपयोगं कुर्वन्तु, तथा च Gateway इत्यस्य उपरि निर्भरतां चयनं कुर्वन्तु सरलः मानचित्रः निम्नलिखितरूपेण अस्ति ।
तस्य निर्माणानन्तरं pom.xml सञ्चिकां परिवर्तयन्तु परिवर्तिता सञ्चिका निम्नलिखितरूपेण अस्ति ।
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <artifactId>springcloudproject</artifactId>
- <groupId>com.cherry</groupId>
- <version>1.0-SNAPSHOT</version>
- <!-- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.2.6.RELEASE</version>
- <relativePath/> <!– lookup parent from repository –>-->
- </parent>
- <groupId>com.cherry</groupId>
- <artifactId>gateway</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>gateway</name>
- <description>Demo project for Spring Boot</description>
-
- <!--<properties>
- <java.version>1.8</java.version>
- <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
- </properties>-->
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-gateway</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-dependencies</artifactId>
- <version>${spring-cloud.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
-
- </project>
द्वारं विन्यस्तुं yml प्रत्ययेन (अर्थात् सञ्चिकानाम application.yml इति परिवर्तयन्तु) application.properties इति विन्याससञ्चिकां परिवर्तयन्तु ।
अत्र वयं csdn blog इत्यस्य उपयोगं सेवाप्रदातृरूपेण कुर्मः
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
रन निष्पादयन्तु, springboot अन्तर्निर्मितं Tomcat आरभ्यते, पोर्ट् 9001
ब्राउजर इनपुट पताhttp://स्थानीयमेजबान:9001/huanzi833
यदि भवान् इच्छति यत् द्वारं अनुपलब्धं भवतु तर्हि application.yml इत्यत्र निम्नलिखितसेटिंग्स् योजयितुं शक्नोति ।
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
- enabled: false
-
ब्राउजर्-प्रवेशः, परिणामाः निम्नलिखितरूपेण सन्ति ।
नोटः- properties सञ्चिकां परिवर्तयित्वा कृपया स्वयं अनुप्रयोगं पुनः आरभत अहं प्रतिवारं निर्देशान् पुनः न करिष्यामि ।
मार्गनिर्धारणं After द्वारा निर्धारितसमयानन्तरं प्रभावी भवति यथा: जनवरी १, २०२० तः परं अनुरोधाः मम ब्लोग् मध्ये अग्रे प्रेषिताः भवन्ति, अस्मात् समयात् पूर्वं अनुरोधाः अग्रे प्रेषयितुं न शक्यन्ते।
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
- - After=2020-01-01T00:00:00+08:00[Asia/Shanghai]
- enabled: true
-
Before इत्यनेन निर्धारितसमयात् पूर्वं मार्गनिर्धारणं प्रभावी भवति यथा: २०२१ तमस्य वर्षस्य जनवरी-मासस्य प्रथमदिनात् पूर्वं अनुरोधाः मम ब्लोग् मध्ये अग्रे प्रेषिताः भवन्ति, अस्य समयस्य अनन्तरं अनुरोधाः अग्रे प्रेषयितुं न शक्यन्ते ।
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
- - After=2020-01-01T00:00:00+08:00[Asia/Shanghai]
- - Before=Before=2021-01-01T00:00:00+08:00[Asia/Shanghai]
- enabled: true
-
Between द्वारा निर्धारितसमयानां मध्ये मार्गनिर्धारणं प्रभावी भवति यथा: 1 जनवरी 2020 तः अक्टोबर 1, 2020 पर्यन्तं अनुरोधाः अग्रे प्रेषिताः भवन्ति अस्मिन् समये बहिः अनुरोधाः अग्रे प्रेषितुं न शक्यन्ते पुनः पुनः सेटिंग्स् परिहरितुं एकत्र।
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
- # - After=2019-01-01T00:00:00+08:00[Asia/Shanghai]
- # - Before=2021-01-01T00:00:00+08:00[Asia/Shanghai]
- - Between=2020-01-01T00:00:00+08:00[Asia/Shanghai], 2020-10-01T00:00:00+08:00[Asia/Shanghai]
- enabled: true
-
कुकी कृते, विधेयद्वयं प्राप्तुं शक्नोति, एकः कुकी नाम अपरः नियमितव्यञ्जनः अस्ति तथा च नियमितव्यञ्जनस्य मेलनं करिष्यति यदि ते मेलनं कुर्वन्ति, यदि मेलनं नास्ति routing निष्पादितं भविष्यति।
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
- # - After=2019-01-01T00:00:00+08:00[Asia/Shanghai]
- # - Before=2021-01-01T00:00:00+08:00[Asia/Shanghai]
- - Between=2020-01-01T00:00:00+08:00[Asia/Shanghai], 2020-10-01T00:00:00+08:00[Asia/Shanghai]
- - Cookie=uid, cherry #通过cookie进行路由规则的匹配
- enabled: true
-
Cookie routing matching इत्यस्य उपयोगेन वयं cmd इत्यस्य परीक्षणार्थं cmd प्रविष्टुं शक्नुमः तथा च cmd इत्यस्मिन् निम्नलिखित स्टेट्मेण्ट् प्रविष्टुं शक्नुमः ।
कुकी मार्गमेलनस्य सदृशं द्वौ पैरामीटर् अपि सन्ति, एकः पैरामीटर् नाम नियमितव्यञ्जनम् च यदि मेलनं नास्ति तर्हि मार्गः निष्पादितः भविष्यति ।
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
- # - After=2019-01-01T00:00:00+08:00[Asia/Shanghai]
- # - Before=2021-01-01T00:00:00+08:00[Asia/Shanghai]
- - Between=2020-01-01T00:00:00+08:00[Asia/Shanghai], 2020-10-01T00:00:00+08:00[Asia/Shanghai]
- - Cookie=uid, cherry #通过cookie进行路由规则的匹配
- - Header=X-Request-Id, d+ #Header路由规则
- enabled: true
-
परीक्षणार्थं cmd प्रविष्टं कुर्वन्तु, cmd मध्ये निम्नलिखित कथनं प्रविशन्तु:
निम्नलिखितविन्यासः होस्ट्-पतेः, यथा www.csdn.net, अथवा www.baidu.com, अथवा blog.csdn.net इत्यादिभिः पत्तनैः मेलितः भवति
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
- # - After=2019-01-01T00:00:00+08:00[Asia/Shanghai]
- # - Before=2021-01-01T00:00:00+08:00[Asia/Shanghai]
- - Between=2020-01-01T00:00:00+08:00[Asia/Shanghai], 2020-10-01T00:00:00+08:00[Asia/Shanghai]
- - Cookie=uid, cherry #通过cookie进行路由规则的匹配
- - Header=X-Request-Id, d+ #Header路由规则
- - Host=**.csdn.net, **.baidu.com #Host路由规则
- enabled: true
-
परीक्षणार्थं cmd प्रविष्टं कुर्वन्तु, cmd मध्ये निम्नलिखित कथनं प्रविशन्तु:
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
- # - After=2019-01-01T00:00:00+08:00[Asia/Shanghai]
- # - Before=2021-01-01T00:00:00+08:00[Asia/Shanghai]
- - Between=2020-01-01T00:00:00+08:00[Asia/Shanghai], 2020-10-01T00:00:00+08:00[Asia/Shanghai]
- - Cookie=uid, cherry #通过cookie进行路由规则的匹配
- - Header=X-Request-Id, d+ #Header路由规则
- - Host=**.csdn.net, **.baidu.com #Host路由规则
- - Method=GET, POST #Method路由规则
- enabled: true
-
Get परीक्षणं कर्तुं cmd प्रविष्टं कुर्वन्तु cmd मध्ये निम्नलिखितम् कथनं प्रविशन्तु ।
POST परीक्षणं कर्तुं cmd प्रविशतु: (टिप्पणी: यदि सेवाप्रदातृनियन्त्रके मार्गः GetMapping इत्यस्य उपयोगं करोति, तथा च आह्वानकाले अत्र -X POST इत्यस्य उपयोगः भवति तर्हि 404 दृश्यते) ।
predicate अपि निश्चितेन IP अन्तरालसङ्ख्यायाः सह अनुरोधं सेट् कृत्वा मार्गनिर्धारणस्य समर्थनं करोति, यथा 192.168.1.1/24 (यत्र 192.168.1.1 IP-सङ्केतः, 24 उपजाल-मास्कः, 24 अत्र च उपजाल-मास्कः 255.255.255.0 इति अर्थः ). परीक्षणार्थं भवान् एतत् पतां स्थानीय-IP-सङ्केते सेट् कर्तुं शक्नोति ।
- server:
- port: 9001
-
- spring:
- application:
- name: gateway
- cloud:
- gateway:
- routes:
- - id: gateway-service
- uri: https://blog.csdn.net
- predicates:
- - Path=/huanzi833
- # - After=2019-01-01T00:00:00+08:00[Asia/Shanghai]
- # - Before=2021-01-01T00:00:00+08:00[Asia/Shanghai]
- - Between=2020-01-01T00:00:00+08:00[Asia/Shanghai], 2020-10-01T00:00:00+08:00[Asia/Shanghai]
- - Cookie=uid, cherry #通过cookie进行路由规则的匹配
- - Header=X-Request-Id, d+ #Header路由规则
- - Host=**.csdn.net, **.baidu.com #Host路由规则
- - Method=GET, POST #Method路由规则
- - RemoteAddr=192.168.1.1/24
- enabled: true
-
मार्गमार्गमेलनम्/पैरामीटरमेलनम्/भारमेलनं अधोलिखितेन पञ्जीकरणकेन्द्रेण सह एकीकरणे सम्पन्नं भविष्यति।
1. प्रथमं सेवाकेन्द्रं Eureka रचयन्तु, कोडः निम्नलिखितरूपेण अस्ति।