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

(四)Spring Cloud Alibaba 2023.x:高效构建 Gateway 网关服务

目录

前言

准备

项目集成

pom.xml引入依赖

启动类

yml文件添加网关配置

修改消费者FeignService类

结果验证


前言

Spring cloud alibaba 体系中构建微服务,我们使用Spring Cloud Gateway 作为服务网关, Gateway是Spring 官方推出的一款基于 WebFlux 的高性能、轻量级网关框架,支持动态路由、限流熔断、过滤器链等功能,且与 Spring 生态深度集成,易于上手并具有广泛的社区支持 。

Tips!

为什么不使用阿里系的网关 Higress ,而是选择spring cloud gateway?
        Alibaba 没有重复造轮子去开发一个类似 Gateway 的通用网关,而是专注于更前沿的 云原生场景,打造了 Higress。Higress 针对 Kubernetes 场景进行了深度优化,支持 Istio、服务网格等技术,是为云原生时代的分布式服务架构量身定制的网关解决方案。

        Spring Cloud Gateway 已经是一个非常成熟和高效的网关解决方案,能够满足大多数微服务场景的需求,与Spring 生态的深度整合,适配性和易用性都非常优秀。因此,在传统的 Spring 微服务体系中,使用 Gateway 已经足够。

        这种明确的分工让两者在各自的场景中都发挥了最大优势,而不是功能上的重复建设。在spring cloud alibaba 的官方github试例代码中也是使用的Gateway。

准备

  • jdk17+
  • maven3.9.4+
  • idea2023
  • spring cloud: 2023.0.1.0
  • spring cloud alibaba: 2023.0.1

源码获取:GitHub - RemainderTime/spring-cloud-alibaba-base-demo: 基于spring cloud alibaba生态快速构建微服务脚手架

项目集成

创建一个网关服务:cloud-gateway

那么目前有三个服务项目:

pom.xml引入依赖

在网关服务gateway中引入依赖

<!-- API网关 gateway-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!-- Spring Boot Actuator -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 负载均衡 loadbalancer -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

启动类

启动类上依然加上注解@EnableDiscoveryClient作为一个服务注册到nacos中

yml文件添加网关配置

server:port: 9090
spring:application:name: cloud-gateway  # 网关服务的名称cloud:gateway:discovery:locator:enabled: true  # 开启自动服务发现routes:- id: http-producer-routeuri: lb://http-cloud-producer #生产者服务名称predicates:- Path=/test/**  # 匹配路径 /test/...
#          filters:
#            - RewritePath=/test/(?<segment>.*), /test/feign/${segment}  # 重写为生产者的接口路径

uri:这个属性为生产者在注册中心的服务名称

Path:这个属性为生产者提供的接口路径路由

注册中心配置相关和前面服务一样,可参考前面的nacos集成篇

修改消费者FeignService类

@FeignClient(name = "cloud-gateway")
public interface FeignService {}

主要就是修改注解中的服务名称,将之前的生产者服务名称修改为网关的服务名称。

消费者向请求网关服务,在通过网关服务路由转发到生产者

结果验证


至此网关配置成功了

相关文章:

(四)Spring Cloud Alibaba 2023.x:高效构建 Gateway 网关服务

目录 前言 准备 项目集成 pom.xml引入依赖 启动类 yml文件添加网关配置 修改消费者FeignService类 结果验证 前言 Spring cloud alibaba 体系中构建微服务&#xff0c;我们使用Spring Cloud Gateway 作为服务网关&#xff0c; Gateway是Spring 官方推出的一款基于 Web…...

Android XR 是什么?解释它的功能、设备、开发工具等

什么是“Android XR”&#xff1f; Android XR是最新配备AI的OS&#xff08;操作系统&#xff09;&#xff0c;兼容耳机和眼镜&#xff08;AR眼镜&#xff09;。 沉浸式剧场 从视频列表中选择... 您可以体验完全身临其境的视频观看体验。 无限工作空间 您的现实世界将成为您…...

【算法】实体关系抽取

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

Codeforces Round 993 (Div. 4)题解

A. Easy Problem 思路&#xff1a;经过看了一眼&#xff0c;我们发现&#xff0c;ab的和一定是n&#xff0c;且两个都是正整数&#xff0c; 所以a的范围就是从1~n-1 所以输出n-1即可 #include<bits/stdc.h> using namespace std; #define int long long int t; int n…...

【计算机网络】期末考试预习复习|中

作业讲解 转发器、网桥、路由器和网关(4-6) 作为中间设备&#xff0c;转发器、网桥、路由器和网关有何区别&#xff1f; (1) 物理层使用的中间设备叫做转发器(repeater)。 (2) 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。 (3) 网络层使用的中间设备叫做路…...

从零用java实现 小红书 springboot vue uniapp (4)个人主页优化

前言 移动端演示 http://8.146.211.120:8081/#/ 前面的文章我们基本完成了详情页开发 今天我们具体的去进行实现个人中心 并且分享我开发时遇到的问题 首先先看效果 我们对布局整体规划一下 个人名片 半透明背景 刚开始我用的是 <view style"background-image: ur…...

为“行车大脑”降温:Simdroid-EC助力汽车ECU设计研发

ECU&#xff08;Electronic Control Unit&#xff0c;电子控制单元&#xff09;被誉为汽车的行车大脑&#xff0c;在工作时会产生大量的热量&#xff0c;而其散热存在以下难题&#xff1a;一是工作环境恶劣&#xff0c;ECU常处于高温环境中&#xff1b;二是ECU所处的空间较为狭…...

视频汇聚平台:Liveweb视频流媒体平台视频监控系统解决方案

数字化技术在安防领域的广泛应用已经成为公安等重要执法部门的重要趋势&#xff0c;主要得益于无线网络通信技术和计算机技术的快速进步。传统的视频监控系统存在诸多局限&#xff0c;例如只能进行现场监视&#xff0c;报警信息传输简单&#xff0c;无法远距离传输视频信号&…...

通过解调使用正则化相位跟踪技术进行相位解包裹

1. 绪论 光学计量学通常使用光学干涉仪来测量各种物理量。1,2 根据应用的不同&#xff0c;可以使用多种类型的干涉仪&#xff0c;但它们的共同目标是产生一个由被测物理量调制的条纹图案。使用这种光束编码程序可以检测到的物理量范围非常广&#xff1a;深度测量、应变分析、温…...

VMware替代 | 双一流大学采用ZStack ZSphere虚拟化平台加速医学应用算法分析

某双一流大学医学部在面对日益增长的医学应用算法分析需求时&#xff0c;选择采用ZStack ZSphere虚拟化平台&#xff0c;以满足其高性能计算和GPU业务应用的迫切需求。该平台凭借其轻量化、卓越性能及易用性&#xff0c;成功解决了医学部在虚拟化及GPU应用场景中的挑战。随着平…...

UNIAPP框架uView初步集成与开发设计

uView UI&#xff0c;是uni-app生态最优秀的UI框架&#xff0c;全面的组件和便捷的工具会让您信手拈来&#xff0c;如鱼得水。本文章分享UNIAPP集成使用uView页面动态开发设计。 一、使用HBuilder X 直接导入插件&#xff0c;下载后重启 uView - DCloud 插件市场 二、配置样…...

C05S08-LVS负载均衡

一、LVS 1. LVS概述 LVS&#xff08;Linux Virtual Server、Linux虚拟服务&#xff09;是一种基于Linux系统集群的负载均衡方案&#xff0c;属于四层的负载均衡。 集群&#xff1a;将相同组件部署在不同的服务器上&#xff0c;提供统一的服务&#xff0c;以及同样的功能&…...

C 语言代码诗韵:数字功能的雅集华章

函数基本操作练习 主要内容&#xff1a; 本任务主要练习函数的申请、定义、调用等&#xff0c;主要包含以下功能&#xff1a; 1&#xff09;编写函数&#xff0c;输入一个整数&#xff0c;求各个数字之和&#xff1b; 2&#xff09;编写函数&#xff0c;计算1&#xff01;2&…...

ps案例制作

宣传海报 暖色调海报商品展示图...

【C++】列表初始化、声明、范围for、array容器

列表初始化、声明、范围for、array容器 一、统一的列表初始化1.1 使用{ }初始化1.2 initializer_list容器 二、声明2.1 auto关键字2.2 decltype关键字2.3 nullptr关键字 三、范围for四、array容器和forward_list容器 一、统一的列表初始化 1.1 使用{ }初始化 在C98中&#xf…...

C++智能指针详解

一、智能指针简介 智能指针是一个类似于指针的类&#xff0c;将指针交给这个类对象进行管理&#xff0c;我们就可以像使用指针一样使用这个类&#xff0c;并且它会自动释放资源。 智能指针运用了 RAII 的思想(资源获得即初始化)。RAII 是指&#xff0c;用对象的生命周期来管理资…...

基础库正则表达式

我们已经可以用requests 库来获取网页的源代码&#xff0c;得到 HTML 代码。但我们真正想要的数据是包含在 HTML代码之中的&#xff0c;要怎样才能从 HTML,代码中获取想要的信息呢?正则表达式就是其中一个有效的方法。 本篇博客我们将了解一下正则表达式的相关用法。正则表达…...

【spring专题】spring如何解析配置类和扫描包路径

文章目录 目标重要的组件加载配置类启动解析组件定位配置类解析配置类 扫描过程总结 目标 这是我们使用注解方式启动spring容器的核心代码 AnnotationConfigApplicationContext applicationContext new AnnotationConfigApplicationContext(MyConfig.class); User user (Us…...

MyBatis框架的入门

目录 MyBatis第一章&#xff1a;框架的概述1. MyBatis框架的概述 第二章&#xff1a;MyBatis的入门程序1. 创建数据库和表结构2. MyBatis的入门步骤 MyBatis 第一章&#xff1a;框架的概述 1. MyBatis框架的概述 MyBatis是一个优秀的基于Java的持久层框架&#xff0c;内部对…...

代码随想录D22-23 回溯算法01-02 Python

理论回顾 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。回溯是递归的副产品&#xff0c;只要有递归就会有回溯。 回溯的本质是穷举&#xff0c;穷举所有可能&#xff0c;然后选出我们想要的答案&#xff0c;如果想让回溯法高效一些&#xff0c;可以加一些剪枝…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...