当前位置: 首页 > news >正文

SpringCloud nacos 集成 gateway ,实现动态路由


🎈 作者: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 运行代码

代码结构如下所示。

 

图1 代码结构

  通过 IDEA 运行,运行结果如下。

图2 运行成功

 

二、集成 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 文件用于管理依赖,删除后代码结构如下。

图3 删除 src 目录后

 (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: gatewaycloud:nacos:discovery:server-addr: localhost:8848locator:lower-case-service-id: trueconfig:# nacos 配置服务的地址,后面的端口不能省,即使是80端口server-addr: localhost:8848# 加载 dataid 配置文件的后缀,默认是 propertiesfile-extension: yml# 配置组,默认就是 DEFAULT_GROUPgroup: DEFAULT_GROUP# 配置命名空间,此处写的是 命名空间的id 的值,默认是 public 命名空间# namespace:# data-id 的前缀,默认就是 spring.application.name 的值prefix: ${spring.application.name}

 同理也按照此方法创建 ServiceOne 和 ServiceTwo 服务,ServiceOne 和 ServiceTwo 用于测试 gateway 的动态路由配置。

2.3 在 nacos 配置

        配置管理 -> 配置列表 中点击最右边的 + 号,新建配置,如下所示。

图4 nacos 配置

三、运行

在浏览器中输入 localhost:8090/service1/index1,运行如下所示。

图5 调用 ServiceOne 服务

 

在浏览器中输入 localhost:8090/service2/index2,运行如下所示。

图6 调用 ServiceTwo 服务

 

参考链接:

通过Nacos动态刷新Spring Cloud Gateway的路由_51CTO博客_spring cloud gateway nacos动态路由


🎈 感觉有帮助记得「一键三连支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞


http://www.lryc.cn/news/97741.html

相关文章:

  • flutter:角标
  • 基于JAVA SpringBoot和Vue高考志愿填报辅助系统
  • [php-cos]ThinkPHP项目集成腾讯云储存对象COS
  • DuckDB全面挑战SQLite
  • Elasticsearch查询裁剪
  • Hadoop——Hive运行环境搭建
  • (vue)vue项目中引入外部字体
  • ChatGPT在语义理解和信息提取中的应用如何?
  • Mysql-主从复制与读写分离
  • 算法练习(3):牛客在线编程04 堆/栈/队列
  • mac下安装vue cli脚手架并搭建一个简易项目
  • 尝试-InsCode Stable Diffusion 美图活动一期
  • 【OpenGL学习】之着色器GLSL基础
  • Python爬虫基础知识点有哪些
  • 【CSS】 vh、rem 和 px 的区别
  • 如何设置板子从emmc启动-针对imx6ull
  • 使用Newtonsoft直接读取Json格式文本(Linq to Json)
  • 服务器用友数据库中了locked勒索病毒后怎么解锁数据恢复
  • Linux-MariaDB数据库的备份与初始化
  • springboot-redis使用fastjson2
  • SOC FPGA之HPS模型设计(二)
  • Go基础—反射,性能和灵活性的双刃剑
  • MATLAB与ROS联合仿真(慕羽☆)全套开源资料索引
  • 三、深入浅出WPF之控件与布局
  • 社群积分运营策略:增加用户忠诚度
  • 推荐用于学习RN原生模块开发的开源库—react-native-ble-manager
  • MySQL中锁的简介——全局锁
  • RocketMQ集群4.9.2升级4.9.6版本
  • 具身智能controller---RT-1(Robotics Transformer)(上---方法介绍)
  • 视频内存过大如何压缩变小?这个压缩方法了解一下