Spring Cloud Gateway是Spring Cloud官方推出的第二代網關框架,取代Zuul網關。網關做爲流量的,在微服務系統中有着很是做用,網關常見的功能有路由轉發、權限校驗、限流控制等做用。html
在上一節的案例中,咱們講述瞭如何使用nacos做爲服務註冊中心和配置中心,使用feign和sc loadbalancer做爲服務調用。本小節將講述如何使用spring cloud gateway做爲服務網關。git
新建一個gateway的工程,工程目錄以下:github
gateway須要註冊到nacos中去,須要引入如下的依賴:web
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
複製代碼
在配置文件application.pom文件:spring
server:
port: 5000
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
gateway:
discovery:
locator:
enabled: false
lowerCaseServiceId: true
routes:
- id: provider
uri: lb://provider
predicates:
- Path=/provider/**
filters:
- StripPrefix=1
- id: consumer
uri: lb://consumer
predicates:
- Path=/consumer/**
filters:
- StripPrefix=1
複製代碼
配置的解釋請閱讀文末的相關教程,在這裏再也不重複。瀏覽器
在工程的啓動文件加上相關注解:markdown
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
複製代碼
依次啓動gateway\consumer\provider三個工程,在nacos中已經成功註冊:app
在瀏覽器上輸入http://localhost:5000/consumer/hi-feign,瀏覽器返回響應:框架
hello feign, i'm provider ,my port:8762
複製代碼
gateway還有其餘不少強大的功能在這裏就再也不講述。ide