网关正在连接是什么意思,网络未连接到网关是什么意思

首页 > 实用技巧 > 作者:YD1662023-12-29 15:22:01

可以看到,就这么一个商品查看操作,就可能会调用许多服务的 API。

那这些 API 如果全部分散到各个服务单元上,供客户端调用,像查看商品这么简单的一次操作,客户端就可能需要远程访问好几次甚至十几次服务器。

微服务自己又讲究把 API 的粒度划分的很细,也就是说,可能从商品服务上调用商品信息,不止是调用一次商品服务就够了,很可能需要多次对商品服务的不同 API 进行调用,才能获取到足够的数据。

这样一来,客户端需要访问服务器的次数就更多了,可能十几次都不够,得几十次。

这种多次访问服务器的行为,会极大延迟客户端的界面响应时间,很不现实。

所以,把 API 放到各个业务相关的服务单元上,看上去问题很大。

那为什么引入网关就能解决这个问题呢?

因为引入网关,就相当于在客户端和微服务之间加了一层隔离。通常,网关本身会和各个服务单元处于同一个机房,这样,客户端做业务操作的时候,只需要访问一次网关。然后剩下的事情,再由网关分别访问同在一个机房的不同的服务,再把拿到的数据统一在网关封装好,返回给客户端就好。

网关正在连接是什么意思,网络未连接到网关是什么意思(17)

网关正在连接是什么意思,网络未连接到网关是什么意思(18)

2. 解决边缘功能集成的问题

在一套微服务组成的系统里,除了必须的业务功能以外,还有为了系统自身的健壮与安全,以及微服务本身的管理,而必须引入的一些非业务功能。对于这些非业务又很重要的功能,我们统称为边缘功能。

还是拿电商系统为例,我们来看一些重要的边缘功能。

假设因为我们做了一次非常大的促销活动,导致流量过大,系统承载不了了。此时,为了保证系统本身的稳定,我们就需要把一些承载不了的流量给通过各种手段消化掉,一般的做法有三种:

可以看到,像限流、降级、熔断这些系统保障策略,最合适的地方应该是有一个集中的请求入口点,就像古时候,老百姓进城需要过城门那样。

当系统出现问题的时候,直接就在这个入口点做相应的操作即可。

在电商系统里,有很多特殊场景的接口,需要受到严格的限制。

比如,支付接口,访问它就需要认证和权限控制。又比如,对于系统的访问,有时候不能让国外的去访问国内的网站,这就需要限制客户端的访问 IP,所以系统还需要认证和授权功能。

那这种认证和授权也最合适放在请求的一个集中入口点,统一实现。

还记得上面咱们说过的网关的 API 统一存放吗?我们只需要对这些 API 做对应的权限设置,当请求访问特殊场景接口的时候,必定会通过 API 访问。所以,限制接口的访问,本质上就是对特定 API 的限制,那么,放在网关再合适不过了。

现实里,我们有时候需要把线上的流量镜像出来,转发到灰度环境,利用这些镜像出来的流量既可以用于小范围测试,又可以更好的评估系统所能承载的最大吞吐量,也因此,系统需要有一个统一入口做分流。

可以看到,无论是系统需要的保障策略,认证授权,还是流量分流等功能,都应该放到一个统一的请求入口处才能得到最好的实现。网关恰好就承担了这么个统一请求入口的角色。

所以,对于微服务中,林林总总的边缘功能,往往会通过插件的形式,集成在 API 网关中。

3. 解耦了客户端和后端微服务

一套项目,在使用微服务模式的初期,往往后端变化是十分频繁的。

频繁变化的原因有很多,像业务领域划分不合适啊,像某个业务模块急速膨胀啊,都可能导致后端微服务的剧烈变化。

在这种情况下,如果没有网关,很可能就会出现客户端需要被迫随着后端的变化而变化的情况。

比如,在电商系统里,初期我们很可能会把风控服务做的非常小。随着业务的发展,风控服务越来越庞大,此时,风控服务就可能被分解为决策引擎和分析中心等更多更细的服务。

在电商里,风控往往是下单、支付等操作的必要前置操作。如果没有网关去分隔开客户端和微服务,客户端直接和风控服务打交道,那么风控服务拆分,API 必然不会稳定,API 的变化,自然会引发调用 API 客户端代码的变化。

有了网关之后,情况就好了很多了。当风控服务本身频繁变化的时候,我们只需要改动网关的代码就好。而服务器代码的升级可是远远要比客户端代码的升级容易太多了。

原文链接:https://www.cnblogs.com/xll1025/p/15889450.html?utm_source=tuicool&utm_medium=referral

,
上一页12345末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.