OM文件依賴
<dependencies>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!--gateway fhadmin.org--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <version>3.0.2</version> </dependency> <!--spring-boot fhadmin.org--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
</dependencies>
點擊手游標簽並拖拽以移動
我在父組件中加入的nacos的相關依賴如下:
<dependency>
<groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${nacos.version}</version>
</dependency>
<!--alibaba fhadmin.org-->
<dependency>
<groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${nacos.version}</version>
</dependency>
點擊並拖拽以移動
nacos的版本如下:
<properties>
<nacos.version>2021.1</nacos.version>
</properties>
點擊並拖拽以移動
gateway的application.yml文件配置如下:
fhadmin.org
server:
port: 9040
spring:
application:
name: gateway
cloud:
gateway: routes: - id: consumer uri: lb://consumer # uri: predicates: - Path=/** nacos: discovery: server-addr: localhost:8848 metadata: preserved.heart.beat.interval: 3 #心跳間隔。時間單位:秒。心跳間隔 preserved.heart.beat.timeout: 6 #心跳暫停。時間單位:秒。 即服務端6秒收不到客戶端心跳,會將該客戶端注冊的實例設為不健康: preserved.ip.delete.timeout: 9 #Ip刪除超時。時間單位:秒。即服務端9秒收不到客戶端心跳,會將該客戶端注冊的實例刪除:
點擊並拖拽以移動
當我通過uri: 去調用服務時,是可以調用的,但是當我用uri lb://consumer時就無法調用服務,報錯503.
解決辦法是:
加入feign依賴。
<dependencies>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <version>3.0.2</version> </dependency> <!--fegin組件 fhadmin.org--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>3.0.2</version> </dependency> <!-- Feign Client for loadBalancing --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-lowww.diuxie.comadbalancer</artifactId> <version>3.0.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
</dependencies>
點擊並拖拽以移動
猜測原因:nacos兼容feign,feign集成ribbon,默認實現負載均衡;或許是nacos不兼容springcloud gateway自帶的ribbon。