🎈 作者:Linux猿
🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬
目录
一、准备工作
1.1 下载代码
1.2 运行代码
二、集成 gateway
2.1 修改 pom.xml
2.2 创建服务 gateway、ServiceOne、ServiceTwo
2.3 在 nacos 配置
三、运行
本篇文章主要介绍集成 gateway 和 nacos,实现动态路由配置,即:通过 nacos 配置动态路由。
一、准备工作
1.1 下载代码
在之前的文章中我们已经集成了 nacos,本篇文章使用之前集成的代码,再集成 gateway 实例,先将之前的代码克隆下来,然后运行测试一下。
$ git clone https://gitee.com/linux-ape/spring-cloud-demo.git
上面是通过 git 工具下载代码,然后切换分支到 nacos 上,如下所示。
git checkout -b gateway1.1 remotes/origin/SpringCloudNacos
1.2 运行代码
代码结构如下所示。
通过 IDEA 运行,运行结果如下。
二、集成 gateway
2.1 修改 pom.xml
首先修改父模块 pom.xml 文件,文件内容如下所示。
<?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>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<packaging>pom</packaging>
<description>demo</description>
<modules>
<module>gateway</module>
</modules>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
重点是添加 dependencyManagement 管理依赖。
2.2 创建服务 gateway、ServiceOne、ServiceTwo
(1)删除 src 目录,保留 pom.xml 文件,pom.xml 文件用于管理依赖,删除后代码结构如下。
(2)创建 gateway 服务
创建 gateway 服务后,修改 pom.xml 文件如下所示。
<?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>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>gateway</artifactId>
<description>gateway</description>
<dependencies> <!-- 修改依赖 -->
<!-- nacos 依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</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-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>
重命名 application.properties 文件为 bootstrap.yml,文件内容如下所示。
server:
port: 8090
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: localhost:8848
locator:
lower-case-service-id: true
config:
# nacos 配置服务的地址,后面的端口不能省,即使是80端口
server-addr: localhost:8848
# 加载 dataid 配置文件的后缀,默认是 properties
file-extension: yml
# 配置组,默认就是 DEFAULT_GROUP
group: DEFAULT_GROUP
# 配置命名空间,此处写的是 命名空间的id 的值,默认是 public 命名空间
# namespace:
# data-id 的前缀,默认就是 spring.application.name 的值
prefix: ${spring.application.name}
同理也按照此方法创建 ServiceOne 和 ServiceTwo 服务,ServiceOne 和 ServiceTwo 用于测试 gateway 的动态路由配置。
2.3 在 nacos 配置
配置管理 -> 配置列表 中点击最右边的 + 号,新建配置,如下所示。
三、运行
在浏览器中输入 localhost:8090/service1/index1,运行如下所示。
在浏览器中输入 localhost:8090/service2/index2,运行如下所示。
参考链接:
通过Nacos动态刷新Spring Cloud Gateway的路由_51CTO博客_spring cloud gateway nacos动态路由
🎈 感觉有帮助记得「一键三连」支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章」回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞