Apache APISIX

Apache APISIX是一款API,如果你需要配置就可以下载这款软件,现在很多开发都需要配置,在设计web程序的时候可以添加路由,在配置数据传输方案的时候可以配置,在开发数据库的时候也需要配置,通过配置路由和可以实现数据通信,实现数据请求,您可以将数据请求的服务流程接入Apache APISIX,通过API功能一键部署你需要的服务,一键配置路由,为用户提供更方便的添加方式;Apache APISIX使用范围非常广泛,无论是web程序还是云服务都可以通过这款软件配置!

相关推荐 软件介绍 下载地址
Apache APISIX官方版v2.5 ApacheAPISIX是一款API,如果你需要配置就可以下载这款软件,现在很多开发都需要配置,在设计web程序的时候可以添加路由,在配置数据传输方案的时候可以配置,在开发数据库的时候也需要配置,通过配置路由和可以实现数据通信,实现数据请求,您可以将数据请求的服… 点击查看
Rv4.0.3 R是一款针对Widws而开发的且用于统计计算和图形编辑的语言环境,它可以在各种UNIX平台,Widws和macOS上编译并运行;R是用于统计计算和图形的语言和环境,这是一个类似于S语言和环境的U项目;R可以看作是S的不同实现,有一些重要的区别,但是为S编写的许多代码在R… 点击查看
NativeScript官方版v7.1.1 NaiveScp提供应用程序设计功能,可以通过这款软件设计手机应用程序,软件支持Adid以及iOS设备的应用程序制作,可以通过一个JavaScp代码库为iOS,Adid和Web构建真正的本机应用程序,借助对TypeScp,CSS以及流行的框架(如Agula和Vue.js)的支持可让您使用已知… 点击查看

Apache APISIX软件功能

Apache APISIX是动态,实时,高能的API。

APISIX提供了丰富的流量管理功能,例如负载平衡,动态上游,金丝雀释放,电路中断,身份验证,可观察等。

您可以使用Apache APISIX来处理传统的南北流量以及服务之间的东西向流量。它也可以用作k8s入口控制器。

Apache APISIX的技术架构:

您可以将Apache APISIX用作处理所有业务数据的流量入口,包括动态路由,动态上游,动态证书,A / B测试,金丝雀发布,蓝绿色部署,限制速率,防御恶意攻击,指标,监视警报,服务可观察,服务治理等。

云原生微服务API,可为所有API和微服务提供终极能,安全,开源和可扩展平台。Apache APISIX基于Nginx和etcd。与传统的API相比,APISIX具有动态路由和插件热加载功能,特别适合微服务系统下的API管理。

APISIX提供了灵活的自定义插件,供开发人员和企业编写自己的逻辑。

Apache APISIX软件特色

一、所有平台

原生云:与平台无关,无供应商锁定,APISIX可以从机运行到Kubernetes。

运行环境:同时支持OpenResty和Tengine。

支持ARM:不用担心基技术的锁定。

二、多协议

TCP / UDP代理:动态TCP / UDP代理。

Dubbo代理:动态HTTP到Dubbo代理。

动态MQTT代理:支持对MQTT进行负载平衡client_id,均支持MQTT 3.1。*,5.0。

gRPC pxy:代理gRPC通信。

gRPC转码:支持协议转码,以便客户端可以使用HTTP / ON访问您的gRPC API。

代理Websocket

代理协议

代理Dubbo:基于Tengine的Dubbo代理。

HTTP(S)转发代理

SSL:动态加载SSL证书。

三、全动态

热更新和热插件:不断更新其配置和插件,而无需重新启动!

代理重写:支持重写host,u,schema,enable_websocket,headers发送之前该请求的上游。

响应重写:为客户端设置自定义的响应状态代码,正文和标头。

无:在APISIX的每个阶段调用功能。

动态负载平衡:循环负载平衡。

基于散列的负载平衡:具有一致的散列会话的负载平衡。

运行状况:在上游节点上启用运行状况,并在负载平衡期间自动过滤不正常的节点,以确保系统稳定。

断路器:智能跟踪不健康的上游服务。

代理镜像:提供镜像客户端请求的功能。

流量分配:允许用户逐步引导各个上游之间的流量百分比。

四、细粒度的路由

支持完整路径匹配和前缀匹配

支持所有的Nginx内置变量条件路由,这样你就可以使用cookie,args等如布线的条件来实丝雀释放,A / B测试等。

支持各种商作为路由的判断条件,例如{“arg_age”, “>”, 24}

支持自定义路由匹配功能

IPv6:使用IPv6来匹配路由。

支持TTL

支持优先

支持批处理Http请求

五、安全

身份验证:key-th,JWT,basic-th,wolf-rbac

IP白名单/黑名单

引荐人白名单/黑名单

IdP:支持外部身份验证服务,例如Auth0,okta等,用户可以使用它来连接到OAuth 2.0和其他身份验证方法。

极限要求

极限数

极限并发

Anti-ReDoS(正则表达式拒绝服务):Anti ReDoS的内置策略,无需配置。

CORS为您的API启用CORS(跨域资源共享)。

I阻止程序:按I阻止客户端请求。

请求验证器

六、OPS友好

OpenTracing:支持Apache Skywalking和Zipkin

与外部服务发现一起使用:除了内置的etcd外,它还支持Consul和Nacos以及Eureka

监控和指标:普罗米修斯

集群:APISIX节点是无状态的,创建配置中心的集群,请参考etcd集群指南。

高可用:支持在同一群集中配置多个etcd地址。

仪表盘

版本控制:支持作回。

CLI:通过命令行启动停止重新加载APISIX。

:支持从本地YAML文件加载路由规则,它更加友好,例如在kubernetes(k8s)下。

全局规则:允许针对所有请求运行任何插件,例如:限制速率,IP过滤器等。

高能:单核QPS达到18k,平均延迟小于0.2毫秒。

故障注入

REST Admin API:使用REST Admin API控制Apache APISIX(默认情况下仅允许127.0.0.1访问),您可以修改allow_admin字段conf/config.yaml以指定允许调用Admin API的IP列表。另外,请注意,Admin API使用密钥身份验证来验证调用者的身份。部署前需要修改其中的admin_key字段,conf/config.yaml以确保安全。

外部志记录器:将访问志导出到外部志管理工具。(HTTP记录器,TCP记录器,Kafka记录器,UDP记录器)

舵图

七、高度可扩展

定制插件:允许钩共同相,如rewte,access,header filter,body filter和log,还允许钩balancer阶段。

自定义负载平衡算法:您可以在此balancer阶段中使用自定义负载平衡算法。

自定义路由:支持用户自己实现路由算法。

Apache APISIX教程

入门#

本指南旨在开始使用Apache APISIX,我们将配置服务,该服务将路由到由API密钥保护的公共API。

另外,我们将以以下echo端点为例,它将返回我们传递的参数。

要求

回复

让我们解构以上请求L。

通讯协定:HTTP

港口:80

主持人: httpbin.org

I /路径: /get

查询参数:foo1,foo2

先决条件#

如果您已经安装了Apache APISIX,请随意并跳至步骤2。

本指南使用Docker和Docker Compose设置Apache APISIX。

curl:本指南使用curl命令进行API测试,但是您也可以使用任何其他工具,例如Postman。

我知道您正在等待片刻,让我们开始吧!

步骤1:安装Apache APISIX #

感谢Docker,我们可以通过执行以下命令来启动Apache APISIX并启用Admin API:

下载所有需要的文件将花费一些时间,这取决于您的网络,请耐心等待。完成此步骤后,我们可以使用curlAdmin API来判断Apache APISIX是否成功启动。

我们希望返回以下数据:

第2步:创建路由#

恭喜你!您现在有一个正在运行的Apache APISIX实例!接下来让我们创建一条路线!

在我们继续之前#

你知道吗?Apache APISIX提供了功能强大的Admin API和仪表板供我们使用,但是我们将在本指南的此处使用Admin API。我们走吧!

我们可以创建一个Route并将其定位到我们的后端服务(通常称为上游),当一个Request路由到达Apache APISIX时,Apache APISIX将看到该请求的去向。

那么Apache APISIX如何知道这一点?那是因为我们有一个使用Route配置的规则列表。以下是路线数据示例

此路由意味着,当所有入站请求都httpbin.org:80符合所有这些规则(匹配的请求)时,它们将被转发到上游:

请求的HTTP方法是GET;

请求具有Host标头,其值为example.com:

请求的路径匹配/s/users/*,*表示所有子路径,例如/s/users/getAll?limit=10。

创建此路由后,我们可以使用Apache APISIX的地址访问我们的后端服务(实际上是上游):

创建上游#

阅读以上部分后,我们知道我们必须将Upstreamfor设置为Route。只需执行以下命令即可创建一个:

我们将其undbin用作负载平衡器机制,并将其设置httpbin.org:80为我们的上游目标(后端),其ID为50。有关更多字段,请参阅Admin API。

注意: Create an Upstream实际上并不是必需的,因为我们可以使用插件来拦截请求直接响应,但是假设我们需要Upstream在本指南中至少设置一个。

与上游绑定路线#

我们刚刚创建了一个上游(参考我们的后端服务),让我们绑定一条路由!

就是这样!

验证#

再次恭喜您!我们创建了一个Route和Upstream,还将它们绑定在一起。现在,让我们调用Apache APISIX来测试d ute。

哇!它会从我们的Upstream(httpbin.org实际上)返回数据,它按预期工作!

进阶#

验证号码

让我们做一些有趣的事情,由于任何人都可以访问我们Route在Step2中创建的公众,我们只希望John可以访问它。让我们使用使用者和插件来实现此保护。

首先,让我们使用key-th插件创建使用者 ,我们需要提供一个指定的密钥:John

接下来,让我们结合我们的Consumer(John)到Route,我们只需要启用的关键AUTH该插件Route:

好的,当我们Route从现在开始访问在步骤2中创建的内容时,将发生未授权错误。让我们看看如何访问它Route:

是的,刚刚添加了一个带有正确密钥的Header被叫apikey!保护任何东西都很容易Routes,对吧?

路线编号中的前缀

现在,假设您要在路由中添加前缀(例如:samplePrefix),并且不想使用host标头,则可以使用pxy-rewte插件来执行此作。

现在,您可以使用以下命令调用路由:

$ curl -i -X GET “ http://127.0.0.1:9080/samplePrefix/get?param1=foo¶m2=bar” -H “ apikey:约翰键”复制

APISIX仪表板#

Apache APISIX提供了一个仪表板,使我们可以更轻松地作Apache APISIX。

Apache APISIX常问问题

为什么要使用新的API?

微服务领域对API有新的要求:更高的灵活,更高的能要求和云原生。

APISIX和其他API之间有什么区别?

APISIX基于etcd来保存和同步配置,而不是诸如Postgres或MySQL之类的关系数据库。

这不仅消除了询,使代码更简洁,而且使配置同步更加实时。同时,系统中将没有单点,这将更有用。

另外,APISIX具有动态路由和插件的热加载功能,特别适合微服务系统下的API管理。

APISIX的能如何?

APISIX设计和开发的目标之一是获得业界最高的能。具体的测试数据可以在这里找到:基准

APISIX是能最高的API,单核QPS为23,000,平均延迟仅为0.6毫秒。

APISIX是否具有控制台界面?

是的,APISIX具有功能强大的仪表板。APISIX和APISIX Dashboard是的项目,您可以部署APISIX Dashboard通过Web界面来作APISIX。

上一篇 2023-02-16
下一篇 2022-12-31

相关推荐

  • Apache APISIX

    Apache APISIX是一款API,如果你需要配置就可以下载这款软件,现在很多开发都需要配置,在设计web程序的时候可以添加路由,在配置数据传输方案的时候可以配置,在开发数...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)