如果大家了解网络构成的话,对于网关应该就不会陌生了,今天我们就一起来了解一下,API网关的一些基础知识,希望对大家以后的服务器开发工作有所帮助,下面就开始今天的主要内容吧。
一、API网关产生背景
在微服务的架构中,一个大的应用会被拆分成多个小的单一的服务提供出来,这些小的服务有自己的处理,有自己的数据库(也可以共用),也许语言也是不一样的,他们可以部署在一个或多个服务器上,其实也就是对复杂的应用进行了解耦,那为什么微服务需要API网关呢
我们看看微服务后产生的问题:
客户端需要知道多个服务地址
通用的功能怎么处理例如鉴权、流量控制、日志等
以前一个功能可能是一次请求就可以完成,现在可能要多个服务一起进行才可以,那如何减少客户端请求的时间呢
由于以上几点的问题,所以在所有的服务前面还需要定义一个代理,即API网关,所有的客户端请求都必须经过API网关代理到真实的服务地址,这也可以有效的避免真实地址的暴露,同时API网关也可以集成鉴权、流量控制、日志、API聚合、黑白名单等。
二、kong的介绍
Kong是由Mashape开发的并且于2015年开源的一款API网关框架,基于nginx以及OpenResty研发,主要特点是高性能以及其强大的扩展性,由于本身是基于nginx进行开发,因此网上很多关于nginx的调优等资料都可以用到kong的上面,包括负载均衡、或者充当web服务器等
kong的扩展是通过插件机制进行的,并且也提供了插件的定制示例方法,插件定义了一个请求从进入到反馈到客户端的整个生命周期,所以电脑培训认为可以满足大部分的定制需求,本身kong也已经集成了相当多的插件,包括CORS跨域、logging、限流、转发、健康检查、熔断等,API聚合功能从github上看也已经进入开发阶段。
注册一个微服务。1、准备三个服务,Eureka服务+提供RESTAPI的两个简单的微服务。
2、将微服务注册到微服务中。
3、springboot不以任何方式限制这些应用程序的内存使用。此时springboot服务器就能共享内存了。应用程序编程接口,简称API(Application
Programming
Interface),就是软件系统不同组成部分衔接的约定。
随着软件规模的日益庞大,我们需要把复杂系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。
API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。
A
reference
implementation
of
an
API
is
the
implementation
created
by
the
designer
of
the
API,
or
one
which
other
implementations
of
the
API
are
expected
to
be
compared
against
例如,图形库中的一组API定义调用绘制图标函数的方式,以于屏幕上显示图标。程序中调用,编译时连接到这组API,执行时便调用API的实现(库)来显示图标。
*** 作系统的API可用来分配内存或访问文件。许多系统与应用程序提供API接口与实现,比如图形系统,数据库,网络,Web服务,甚至于某些游戏。
一组API经常是一套软件开发工具包(SDK)的一部分。SDK亦可包含其它工具亦或至于硬件,两个术语并不完全等同
API有诸多不同设计。用于快速执行的接口通常包括函数,常量,变量与数据结构。也有其它方式,如通过解释器,或是提供抽象层以遮蔽同API实现相关的信息,确保使用API的代码无需更改而适应实现变化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)