一、什么是API网关?
API网关是一种服务器,作为应用程序编程接口(API)的入口点,用于接收和处理来自外部应用程序的请求,可以将其视为一个管理API访问的中间件,在请求和响应之间进行转换,路由,安全检查和其他处理。
如果将API网关比喻为地铁的进站口,那么它可以更好地理解其重要作用。就像地铁的进站口一样,API网关是所有流量进入系统的入口点,需要进行安全检查和身份验证,以确保只有授权的用户和应用程序可以访问API。
当系统中的流量超过API的承受能力时,API网关可以执行限流操作,以确保系统的稳定性和可靠性。这可以通过减少同时连接的数量或限制请求的速率来实现。API网关还可以执行其他 任务,如日志记录,监控和分析。以便很好地了解应用程序的使用情况和性能。
因此,API网关对于保障应用程序的平稳运行和安全稳定性至关重要。它充当着整个系统的流量大门,管理着所有API访问,确保只有经过授权的请求才能进入系统,并提供适当的响应。
比如用nginx来进行系统内部和系统外部的互通,在没有微服务的时候,nginx就叫做网关。nginx承担了限流,负载均衡,安全保护的职责。
引入微服务的话,在微服务的内部和外部就有微服务网关。网关是打通内外,微服务网关是打通微服务的内部和外部,因为微服务的IP是漂移的,特别在K8S上微服务IP是漂移的,没办法做配置,而且是需要动态伸缩的,也是来不及做配置的,所以需要微服务动态的注册和发现,所以需要带有服务治理能力的网关-微服务网关。nginx是无法对微服务做动态的配置和伸缩。而且微服务的ip漂移之后,nginx也是搞不定的,所以这个时候有了nginx网关和微服务网关。
API网关:系统和系统之间,系统有的是单体架构,有的是微服务架构,有的是云原生架构,是什么语言开发的系统都没有关系,只要他们能够互相调用就可以了。比方说,其中一个系统有一个接口要给100个系统进行调用。这个如果这个系统的接口要修改的话,就要通知100个系统,工作 量就很大的.
我们这个时候就可以弄个API网关,还需要有一个DashBoard控制台/运营平台/服务总线平台/工单平台:是用来管理API的。之前没有API网关是点对点对接。现在是系统和API网关对接,然后在DashBoard控制台注册下API,我们的API通过API网关给发布出去,然后其他系统谁来调用,就从控制平台来申请,审核的话由运维人员来审核,使用的时候是API网关来使用。所以API网关的价值是很巨大的,API网关是系统和系统之间的高速公路。
高速公路API网关必须要做到三高,高性能,高可靠,高并发。所以要开发API网关需要有两个部分,一个是高并发的部分:API网关,一个是低并发的部分,运维平台:crud的开发