POM檔案依賴
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
nacos的版本如下:
<properties>
<nacos.version>2021.1</nacos.version>
</properties>
gateway的application.yml檔案配置如下:
//fhadmin.cn
server:
port: 9040
spring:
application:
name: gateway
cloud:
gateway:
routes:
- id: consumer
uri: lb://consumer
# uri: http://localhost:9010
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: http://localhost:9010去呼叫服務時,是可以呼叫的,但是當我用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組件-->
<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-loadbalancer</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,實作案例 fhadmin.cn
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/379044.html
標籤:Java
