当前位置:首页 > 每日看点

为什么微服务一定要有网关?

卡卷网1年前 (2024-11-17)每日看点610

网关

一句话总结,网关的作用是上浮公共逻辑,下沉差异逻辑。公共逻辑就是所有接口都需要做的事,比如权限校验,限流算法等,这样业务就只需要关心业务逻辑即可。下面是一个对比图:

为什么微服务一定要有网关?  第1张

当然除了一些公共逻辑外,路由也是网关的核心功能,它可以进行流量转发。限流方面可以结合限流组件或者自己实现限流算法来实现。

设计一个网关的思

我们首先想到的是网关本身不提供订单,商品,营销等能力,所以需要转发出去。那么网关跟各个服务之间就需要记录一种关系。所以可以有一张路由表,记录每个服务对应的域名/服务名,比如这样

服务前缀服务域名服务名称
orderorder.com/订单服务
productproduct.com/商品服务

由于所有的请求都要经过网关,假设现在有两个请求,分别请求订单详情跟商品详情,那么请求的url可能是这样:

  • jayden.gateway.com/order/detail
  • jayden.gateway.com/product/detail

此时在网关的逻辑里可以获取到紧跟域名后到第一个path,也就是order跟product。然后通过查表可以获取到对应的服务域名,这样就可以将请求转发到以下路径:

  • order.com/order/detail
  • product.com/product/detail

这就是网关最核心的逻辑,其实就是一张路由表。当然各种网关实现的逻辑都不相同,但是核心逻辑都是一样的。


Gateway

简介

Spring Cloud Gateway在Spring Cloud的大家庭里扮演着重要角色,它像一位得力助手,专门用来搭建基于HTTP的微服务世界的API大门(所有请求都要过网关)。有了它,管理微服务应用的API流量变得既灵活又强大。 在这个过程中,路由和过滤器是Spring Cloud Gateway的两大法宝。想象一下,它们能聪明地指引每个请求找到正确的目的地(微服务),这一切都根据请求的路径、来源或者请求方式等条件自动完成。而且,它还支持负载均衡、熔断机制和自动重试等功能,让微服务架构更加健壮。 更酷的是,可以定制自己的过滤器,这就像给网关装上了魔法,无论是请求前的小小调整,还是响应后的特别加工,比如安全检查、记录日志或是改变请求的样子,都能轻松搞定,适应多种多样的需求。 性能方面,Spring Cloud Gateway采用非阻塞的Reactor框架,速度快、消耗少,绝对是性能小能手。再加上Spring Boot的好搭档属性,通过几行简洁的配置和注解,就能快速打包、部署你的网关服务,省时又省力。


Gateway配置

下面是一个示例配置,配置了user,order,product3个服务

server: port: 8080 ​ spring: application: name: gateway-service ​ cloud: gateway: routes: - id: user-service-route # 路由的唯一标识符 uri: lb://user-service # uri指定了目标微服务的名称(lb://前缀表示使用负载均衡) predicates: # 定义了匹配请求的条件 - Path=/api/users/** - id: order-service-route uri: lb://order-service predicates: - Path=/api/orders/** - id: product-service-route uri: lb://product-service predicates: - Path=/api/products/**


当客户端发送一个请求到Spring Cloud Gateway时,以下是请求的大致过程:

  • 客户端发送请求:客户端发送HTTP请求到Spring Cloud Gateway。
  • 路由匹配:Spring Cloud Gateway根据预先定义的路由规则(predicates)对请求进行匹配。路由规则定义了请求应该被转发到哪个目标微服务(uri)
  • 过滤器链:在请求被路由之前和之后,Spring Cloud Gateway会应用一系列的过滤器来对请求进行处理。过滤器可以修改请求、添加头信息、进行身份验证等操作。
  • 负载均衡:Spring Cloud Gateway使用负载均衡算法选择一个服务实例作为请求的目标。uri后面的lb就是负载均衡的作用
  • 转发请求:Spring Cloud Gateway将请求转发到目标微服务实例。
  • 目标微服务处理请求:目标微服务接收到请求后,处理请求并生成响应。
  • 响应返回:目标微服务生成响应后,将响应发送回Spring Cloud Gateway。
  • 过滤器链反向执行:Spring Cloud Gateway将响应经过过滤器链反向执行,可以对响应进行修改、添加头信息等操作。
  • 响应返回客户端:Spring Cloud Gateway将最终的响应返回给客户端。


扩展:网关可以不注册到注册中心吗?

答案是不行。我们知道Gateway也是一个微服务组件,微服务组件都要注册到注册中心,那么注册中心上有什么呢?对!所有服务的注册信息,那么这些信息不就是路由表的一部分吗?配置中的服务名可以通过注册信息获取具体的服务地址。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/11/438.html

分享给朋友:

相关文章

你是如何在不依靠工资收入的情况下赚到一万元的?

你是如何在不依靠工资收入的情况下赚到一万元的?

分享几个路子稳,门槛低,变现快,适合年轻人的靠谱的副业。绝对不是送外卖、滴滴、搬砖等等的苦力活,这几个副业都是能是性价比极高,还能让你快速成长的工作。 想通过副业实现暴富、立马月入过万的同学,建议速速划走。 今天撇哥就给大家分享 100+个…

你为什么讨厌抖音?

我就被抖音毁了。 现在被我媳妇从抖音里拯救出来了。 我为什么会这样说? 我媳妇硕士在读,我文化程度相对就比较低了。 大多数人看抖音其实就是为了一图一乐呵 刚开始我也是这样的,我是2017年在朋友的推荐下注册了抖音,刚开始那时候对抖音不太上瘾…

下一个风口最可能是什么?

下一个风口最可能是什么?

肯定是一带一路了,国内没什么卷的空间了,现在国家正在给一带一路的第三世界国家建设基础设施,等交通打通之后,就是通信打通,通信打通就是贸易打通,未来我建议大家重仓小语种,阿拉伯语最值得学(也有其他小语种自己去查一带一路国家),将来去其他国家随…

腾讯云为何在云服务市场败给了阿里云?

IDC领域,2010年以前,万网、新网互联、新网,三家公司瓜分天下,其中万网市场份额最高,排名第一。当时,万网的域名是 http://www.net.cn ,通过该域名就可以判断万网的地位。2010年阿里云成立,直接收购了万网,大量用户直接…

如何看待 Luv Letter 表示影视飓风专业性实在是让人失望?

一点儿新进展,另外以下有部分需要关注 对于统一变量的问题。这个我在对比上面有写小字解释,我在一开始使用ffmpeg来控制变量。但是发现了不少问题,比如因为遗留bug,会强制将非整数帧的素材转码为VFR导致无法正确帧间对比,因此不考虑,同时尽…

怎样拥有一台最便宜的服务器?

怎样拥有一台最便宜的服务器?

内容提示:主打一个 DIY + 极限白嫖 =) 某宝花10块买一个“随身WiFi”,刷入Ubuntu,用SSH远程连接,但是记得一定要把外壳撬掉然后粘个散热器(哪怕是白萝卜也彳亍),否则会过热 详细去酷安社区搜“随身WiFi” ======…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。