POM文件依賴
注意:nacos兼容feign,feign集成ribbon,默認實現負載均衡;nacos不兼容springcloud gateway自帶的ribbon。
1 <!-- 服務注冊 -->
2 <dependency>
3 <groupId>com.alibaba.cloud</groupId>
4 <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
5 <exclusions>
6 <exclusion>
7 <artifactId>guava</artifactId>
8 <groupId>com.google.guava</groupId>
9 </exclusion>
10 </exclusions>
11 </dependency>
12 <!--網關-->
13 <dependency>
14 <groupId>org.springframework.cloud</groupId>
15 <artifactId>spring-cloud-starter-gateway</artifactId>
16 </dependency>
17
18 <!--fegin組件 fhadmin.org-->
19 <dependency>
20 <groupId>org.springframework.cloud</groupId>
21 <artifactId>spring-cloud-starter-openfeign</artifactId>
22 </dependency>
23 <!-- Feign Client for loadBalancing -->
24 <dependency>
25 <groupId>org.springframework.cloud</groupId>
26 <artifactId>spring-cloud-loadbalancer</artifactId>
27 </dependency>
版本:
<spring-cloud.version>2020.0.3</spring-cloud.version>
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
<nacos.version>2021.1</nacos.version>
網關Gateway的Application.yml配置如下
1 server:
2 port: 8080
3 spring:
4 application:
5 name: api-gateway
6 cloud:
7 nacos:
8 discovery:
9 server-addr: 127.0.0.1:8848
10 gateway:
11 discovery:
12 locator:
13 enabled: true #表明gateway開啟服務注冊和發現的功能,並且spring cloud gateway自動根據服務發現為每一個服務創建了一個router,這個router將以服務名開頭的請求路徑轉發到對應的服務。
14 lower-case-service-id: true #是將請求路徑上的服務名配置為小寫(因為服務注冊的時候,向注冊中心注冊時將服務名轉成大寫的了),比如以/service-hi/*的請求路徑被路由轉發到服務名為service-hi的服務上。
15 routes:
16 - id: service-hosp
17 uri: lb://service-hosp #此配置的值注冊到Nacos中服務提供者的spring.application.name的值
18 predicates:
19 - Path=/*/hosp/**
20 - id: service-cmn
21 uri: lb://service-cmn
22 predicates:
23 - Path=/*/cmn/** #設置路由斷言,代理servicerId為data-service1的/ data-service1 /路徑
啟動測試