最新在想着重新搭建一套springcloud 全家桶服务,在废弃原有springcloud zuul网关,升级使用gateway网关的时候发现个坑,通过路由访问一直是404,最后折腾呢半天终于原因在于pom文件有误,不是使用springboot提供的gateway,而是使用spingcloud提供的gateway,顺便贴下一个有误的gateway依赖,以及正确的gateway依赖
顺便贴下完整pom文件以及yml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.vincent</groupId>
<artifactId>spring_cloud_gateway</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring_cloud_gateway</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
</properties>
<dependencies>
<!--Spring Boot Begin-->
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--引入springcloud的euekea server依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<!--指定下载源和使用springcloud的版本-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
server:
port: 9771
serverList:
uriOrder: buyersys
# uriOrder: http://buyer_system_feign
spring:
application:
name: gateway-client
cloud:
gateway:
discovery:
locator:
enabled: false
lowerCaseServiceId: true
routes:
- id: buyersys
uri: lb://${serverList.uriOrder}
predicates:
- Path=/buyersys/**
filters:
- StripPrefix=1
# routes:
# - id: orderSystem
# uri: ${serverList.uriOrder} # uri以lb://开头(lb代表从注册中心获取服务),后面接的就是你需要转发到的服务名称
# predicates:
# - Path=/orderSys/**
# filters:
# - StripPrefix=1
eureka:
serverPort: 8000
client:
service-url:
# 注册Eureka Server集群
defaultZone: http://${eureka.instance.hostname}:${eureka.serverPort}/eureka
instance:
hostname: localhost
springcloud eureka控制台
没用网关访问
使用网关访问