springcloud gateway搭建及动态获取nacos注册的服务信息信息

ops/2025/3/13 13:49:31/

前言

        Spring Cloud Gateway 通过集成 Nacos 服务发现,可以动态获取注册到 Nacos 的微服务实例信息,并根据服务名(Service Name)自动生成路由规则或手动配置路由规则,实现请求的动态路由和负载均衡。

        一个最简单的网关就是实现所有微服务的代理即可,但是生产环境通常需要服务鉴权限制访问等,这里先简单示例一个没有鉴权,可以访问所有微服务接口的网关

创建项目

创建一个springboot项目

注意:避免引入 spring-boot-starter-web,因 Gateway 基于 WebFlux 非阻塞模型

添加依赖

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.13</version><relativePath/> <!-- lookup parent from repository --></parent><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>4.0.0</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2022.0.0.0-RC2</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2022.0.0.0-RC2</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId><version>4.0.5</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId><version>4.0.5</version></dependency>

修改配置

application.yml
server:port: 8080spring:application:name: api-gatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8848  # 服务注册地址namespace: local            # 命名空间(默认 public,我这里改为了local)group: DEFAULT_GROUP         # 分组gateway:discovery:locator:enabled: true              # 自动根据服务名生成路由(重要!)lower-case-service-id: true

启动和调用

成功访问到微服务的接口调用成功

手工配置路由


spring:application:name: api-gatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8848  # ??????namespace: local            # ??????? public?group: DEFAULT_GROUP         # ??gateway:discovery:locator:enabled: true              # ????????????????lower-case-service-id: trueroutes:- id: hello_route  # 路由唯一标识uri: http://localhost:8081  # 目标服务地址predicates:- Path=/hello/**  # 路径匹配规则

访问配置的路由

总结

这里只是个简单的调用,主要目的是走通微服务调用的流程,后续会不断完善权限配置等


http://www.ppmy.cn/ops/165431.html

相关文章

vscode更新后: 适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新

WSL介绍&#xff1a;Windows开发者的Linux利器 WSL是什么&#xff1f; WSL (Windows Subsystem for Linux) 是微软为开发者提供的一项重要功能&#xff0c;它允许在Windows系统上原生运行Linux二进制可执行文件。简单来说&#xff0c;WSL让你能够在Windows上使用真正的Linux环…

React面试(二)

文章目录 一、类组件和函数组建的异同二、refs三、react事件和普通的html事件有什么不同四、React 组件中怎么做事件代理&#xff1f;它的原理是什么&#xff1f;五、React组件的构造函数有什么作用&#xff1f;它是必须的吗&#xff1f;六、在React中如何避免不必要的render 一…

Mac 如何在idea集成SVN

在windows系统上面有我们最为熟悉的小乌龟TortoiseSVN&#xff0c;在mac系统上面则没有什么好用的svn的工具&#xff0c;而且大部分都付费&#xff0c;需要各种渠道找PJ版&#xff0c;费事费力&#xff0c;作为程序员&#xff0c;大部分人应该都会安装开发工具&#xff0c;本文…

计算机组成原理之基本元器件和逻辑门构成

元器件介绍 下拉电阻&#xff1a; 下拉电阻的核心作用是稳定电路中的低电平状态&#xff0c;避免信号引脚因悬空&#xff08;无输入&#xff09;而产生的不确定电压。 举例&#xff1a; 比如你家灯的开关&#xff1a; 开关断开&#xff08;没按&#xff09;时&#xff0c;下…

Java 实现 WebSocket 客户端

Java 实现 WebSocket 客户端&#xff1a;分步说明 步骤 1&#xff1a;引入必要的依赖 首先&#xff0c;确保你的项目中包含WebSocket客户端所需的依赖。如果你使用的是Maven&#xff0c;可以在pom.xml文件中添加以下依赖&#xff1a; <dependency><groupId>org.…

网络安全事件响应--应急响应(windows)

应用系统日志 Windows主要有以下三类日志记录系统事件&#xff1a;应用程序日志、系统日志和安全日志。 系统和应用程序日志存储着故障排除信息&#xff0c;对于系统管理员更为有用。安全日志记录着事件审计信息&#xff0c;包括用户验证&#xff08;登录、远程访问等&#x…

基于React的虚拟滚动方案

基于React的虚拟滚动方案 在渲染列表时我们通常会一次性将所有列表项渲染到DOM中&#xff0c;在数据量大的时候这种操作会造成页面响应缓慢&#xff0c;因为浏览器需要处理大量的DOM元素。而此时我们通常就需要虚拟滚动来实现性能优化&#xff0c;当我们拥有大量数据需要在用户…

在 Windows 11 上使用 PyCharm 创建一个 Flask 项目,并使用 `pipenv` 进行虚拟环境管理

在 Windows 11 上使用 PyCharm 创建一个 Flask 项目&#xff0c;并使用 pipenv 进行虚拟环境管理&#xff0c;可以按照以下步骤进行&#xff1a; 1. 安装必要的软件 确保已安装 Python &#xff08;建议 3.8 及以上版本&#xff09;。 在终端&#xff08;Win R 输入 cmd&#…