Selaa lähdekoodia

路由跳转配置

yufeng0528 4 vuotta sitten
vanhempi
commit
a6b94bbdc7
3 muutettua tiedostoa jossa 88 lisäystä ja 2 poistoa
  1. 12 1
      README.md
  2. 31 1
      pom.xml
  3. 45 0
      src/main/java/com/yaozhitech/spring5/config/RouterConfig.java

+ 12 - 1
README.md

@@ -1,3 +1,14 @@
1 1
 # spring5_demo1
2 2
 
3
-spring5_demo
3
+spring5_demo
4
+
5
+
6
+spring5 -> webflux ->spring gateway
7
+
8
+# 版本
9
+2.2.* -> Hoxton
10
+2.1.* -> Greenwich
11
+2.0.* -> Finchley
12
+
13
+# 参考
14
+1. https://www.jianshu.com/p/86660b8b24c4

+ 31 - 1
pom.xml

@@ -23,9 +23,38 @@
23 23
 		<maven.compiler.source>1.8</maven.compiler.source>
24 24
 		<maven.compiler.target>1.8</maven.compiler.target>
25 25
 		<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
26
+		<spring-cloud.version>2.2.0.RELEASE</spring-cloud.version>
26 27
 	</properties>
27
-
28
+	
29
+	<dependencyManagement>
30
+        <dependencies>
31
+            <dependency>
32
+                <groupId>org.springframework.cloud</groupId>
33
+                <artifactId>spring-cloud-dependencies</artifactId>
34
+                <version>Hoxton.RELEASE</version>
35
+                <type>pom</type>
36
+                <scope>import</scope>
37
+            </dependency>
38
+        </dependencies>
39
+    </dependencyManagement>
40
+    
28 41
 	<dependencies>
42
+	   <!--自省和监控的集成功能-->
43
+        <dependency>
44
+            <groupId>org.springframework.boot</groupId>
45
+            <artifactId>spring-boot-starter-actuator</artifactId>
46
+        </dependency>
47
+        
48
+	   <dependency>
49
+            <groupId>org.springframework.cloud</groupId>
50
+            <artifactId>spring-cloud-starter</artifactId>
51
+       </dependency>
52
+       
53
+       <dependency>
54
+            <groupId>org.springframework.cloud</groupId>
55
+            <artifactId>spring-cloud-starter-gateway</artifactId>
56
+        </dependency>
57
+        
29 58
 		<!-- Spring Boot Web Flux 依赖 -->
30 59
 		<dependency>
31 60
 			<groupId>org.springframework.boot</groupId>
@@ -37,6 +66,7 @@
37 66
 			<groupId>org.springframework.boot</groupId>
38 67
 			<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
39 68
 		</dependency>
69
+
40 70
 		
41 71
 		<!-- lombok依赖包 -->
42 72
 		<dependency>

+ 45 - 0
src/main/java/com/yaozhitech/spring5/config/RouterConfig.java

@@ -0,0 +1,45 @@
1
+package com.yaozhitech.spring5.config;
2
+
3
+import org.springframework.beans.factory.annotation.Configurable;
4
+import org.springframework.cloud.gateway.filter.ratelimit.RedisRateLimiter;
5
+import org.springframework.cloud.gateway.route.RouteLocator;
6
+import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
7
+import org.springframework.context.annotation.Bean;
8
+import org.springframework.context.annotation.Configuration;
9
+
10
+@Configuration
11
+public class RouterConfig {
12
+
13
+	@Bean
14
+	public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
15
+		//@formatter:off
16
+		return builder.routes()
17
+				.route("path_route", r -> r.path("/city_list.do")
18
+						.uri("https://api.bbztx.com"))
19
+				.route("host_route", r -> r.host("*.myhost.org")
20
+						.uri("http://httpbin.org"))
21
+//				.route("rewrite_route", r -> r.host("*.rewrite.org")
22
+//						.filters(f -> f.rewritePath("/foo/(?<segment>.*)",
23
+//								"/${segment}"))
24
+//						.uri("http://httpbin.org"))
25
+//				.route("hystrix_route", r -> r.host("*.hystrix.org")
26
+//						.filters(f -> f.hystrix(c -> c.setName("slowcmd")))
27
+//								.uri("http://httpbin.org"))
28
+//				.route("hystrix_fallback_route", r -> r.host("*.hystrixfallback.org")
29
+//						.filters(f -> f.hystrix(c -> c.setName("slowcmd").setFallbackUri("forward:/hystrixfallback")))
30
+//								.uri("http://httpbin.org"))
31
+//				.route("limit_route", r -> r
32
+//					.host("*.limited.org").and().path("/anything/**")
33
+//						.filters(f -> f.requestRateLimiter(c -> c.setRateLimiter(redisRateLimiter())))
34
+//					.uri("http://httpbin.org"))
35
+//				.route("websocket_route", r -> r.path("/echo")
36
+//					.uri("ws://localhost:9000"))
37
+				.build();
38
+		//@formatter:on
39
+	}
40
+	
41
+	@Bean
42
+	RedisRateLimiter redisRateLimiter() {
43
+		return new RedisRateLimiter(1, 2);
44
+	}
45
+}