快速搭建gateway并接入nacos,并使用nacos配置文件
前言:
本文使用springboot版本2.3.7,springCloud:Hoxton.SR9,springCloudAlibaba:2.2.6.RELEASE,使用时候需要注意版本搭配,否则可能出现奇怪问题
搭建步骤
1、使用idea搭建一个空白项目gateway
2、POM引入下面依赖
<properties>
<java.version>11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<!--gateway网关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--nacos服务器注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
3、启动本地nacos
ncaos可以是windows本地的或者linux的都可以,我这里使用本地nacos,启动后访问loalhost:8848 目前是没有服务的
4、添加启动类注解和nacos注册以及配置信息
gateway启动类添加 @EnableDiscoveryClient 注解,亲测不添加也可以
配置nacos注册中心地址,application.yml添加如下内容:
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
配置nacos配置中心,在bootstrap.yml中添加如下内容,如果没有这个文件也可以直接在上面application.yml中添加。
spring:
application:
name: gateway
cloud:
nacos:
discovery:
enabled: true
service: ${spring.application.name}
config:
enabled: true
encode: UTF-8
file-extension: yml
5、在nacos中配置gateway的内容,方便实时更新,内容如下:
spring:
cloud:
gateway:
routes:
- id: baidu
uri: https://www.baidu.com
predicates:
- Path=/
- id: user-service-login
uri: lb://user-service
predicates:
- Path=/user-service/user/login
filters:
- StripPrefix=1
# - PrefixPath=/
- id: user-service-info
uri: lb://user-service
predicates:
- Path=/user-service/user/info
filters:
- StripPrefix=1
- Auth
6、启动相关,观察nacos服务列表是否有gateway注册成功
出现如上图说明启动注册成功,可以访问网关配置观察路由配置是否成功