当前位置:首页 > 每日看点 > 正文内容

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

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

网关

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

为什么微服务一定要有网关?  第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

分享给朋友:

相关文章

创业容易吗?

创业容易吗?创建企业不一定是困难或令人生畏的。它可以从一个简单但有力的想法开始,比如小强意识到,如果洗手液能杀死真菌,尤其是拳击台上的真菌,就会更加有用。创业确实需要奉献精神、努力工作和仔细规划——这是没有办法的。虽然这本身可能并不容易,但...

电脑c盘哪些文件可以删除?

电脑c盘哪些文件可以删除?

电脑上的文件夹都是英文,很多朋友都不敢乱删,下面这几个文件夹里的文件,你可以放心删除。一、可删除的文件1、Backup这是一个备份文件夹,很多装机软件经常会把需要备份的东西,放在这个文件夹中。而当我们需要的软件正常保存之后,这些东西也就没有...

逾期后支付宝微信被冻结,显示执保该怎么办?

这几天有朋友问我说,他的微信零钱突然的用不了,问我是不是被冻结了,问我该怎么办?是不是被起诉了?这个,那个,别慌,别慌,还是那句老话:有钱就去协商,没钱只能暂时不管!但是真不管,这个被冻结的微信怎么办呢?今天针对这个问题,我就给大家做一哥比...

你为什么讨厌抖音?

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

为什么这次 Mac mini 的 M4 版本价格这么低?

为什么这次 Mac mini 的 M4 版本价格这么低?

扫了一眼这里的回答,目测没几个人真买过 Macbook、Mac mini且真正当主力工作机用过。这个初始(丐版)版本的机器实际谈不上多便宜,备受热捧有几个原因。它这代产品整体做了重新设计,大幅缩减了尺寸,真正称得上 Mini 了。对比前代,...

大家都是怎么把自己的粉丝增加到1000的呢?

大家都是怎么把自己的粉丝增加到1000的呢?

截至2024年10月30日,关注者总数1137人,用时80天,增速约14人/天。2024年10月30日数据2024年8月10日开始创作,连续一周,1个关注者都没有。创作第7天,得到第一个关注,7天时间,写了8篇回答。当天得到关注,激动的心情...

发表评论

访客

看不清,换一张

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