分类分类
大小:0.3 MB 更新:2021/05/13
类别:编程工具系统:WinXP, Win7, Win8, Win10, WinAll
Apache
APISIX是一款API网关,如果你需要配置网关就可以下载这款软件,现在很多开发都需要配置网关,在设计web程序的时候可以添加路由网关,在配置服务器数据传输方案的时候可以配置网关,在开发数据库的时候也需要配置网关,通过配置路由和网关可以实现数据通信,实现数据请求,您可以将数据请求的服务流程接入Apache
APISIX,通过API功能一键部署你需要的网关服务,一键配置路由,为用户提供更方便的网关添加方式;Apache
APISIX使用范围非常广泛,无论是web程序还是云服务都可以通过这款软件配置网关,需要的朋友就下载吧!
Apache APISIX是动态,实时,高性能的API网关。
APISIX提供了丰富的流量管理功能,例如负载平衡,动态上游,金丝雀释放,电路中断,身份验证,可观察性等。
您可以使用Apache APISIX来处理传统的南北流量以及服务之间的东西向流量。它也可以用作k8s入口控制器。
Apache APISIX的技术架构:
您可以将Apache APISIX用作处理所有业务数据的流量入口,包括动态路由,动态上游,动态证书,A / B测试,金丝雀发布,蓝绿色部署,限制速率,防御恶意攻击,指标,监视警报,服务可观察性,服务治理等。
云原生微服务API网关,可为所有API和微服务提供终极性能,安全性,开源和可扩展平台。Apache APISIX基于Nginx和etcd。与传统的API网关相比,APISIX具有动态路由和插件热加载功能,特别适合微服务系统下的API管理。
APISIX提供了灵活的自定义插件,供开发人员和企业编写自己的逻辑。
一、所有平台
原生云:与平台无关,无供应商锁定,APISIX可以从裸机运行到Kubernetes。
运行环境:同时支持OpenResty和Tengine。
支持ARM64:不用担心基础技术的锁定。
二、多协议
TCP / UDP代理:动态TCP / UDP代理。
Dubbo代理:动态HTTP到Dubbo代理。
动态MQTT代理:支持对MQTT进行负载平衡client_id,均支持MQTT 3.1。*,5.0。
gRPC proxy:代理gRPC通信。
gRPC转码:支持协议转码,以便客户端可以使用HTTP / JSON访问您的gRPC API。
代理Websocket
代理协议
代理Dubbo:基于Tengine的Dubbo代理。
HTTP(S)转发代理
SSL:动态加载SSL证书。
三、全动态
热更新和热插件:不断更新其配置和插件,而无需重新启动!
代理重写:支持重写host,uri,schema,enable_websocket,headers发送之前该请求的上游。
响应重写:为客户端设置自定义的响应状态代码,正文和标头。
无服务器:在APISIX的每个阶段调用功能。
动态负载平衡:循环负载平衡。
基于散列的负载平衡:具有一致的散列会话的负载平衡。
运行状况检查:在上游节点上启用运行状况检查,并在负载平衡期间自动过滤不正常的节点,以确保系统稳定性。
断路器:智能跟踪不健康的上游服务。
代理镜像:提供镜像客户端请求的功能。
流量分配:允许用户逐步引导各个上游之间的流量百分比。
四、细粒度的路由
支持完整路径匹配和前缀匹配
支持所有的Nginx内置变量条件路由,这样你就可以使用cookie,args等如布线的条件来实现金丝雀释放,A / B测试等。
支持各种运营商作为路由的判断条件,例如{"arg_age", ">", 24}
支持自定义路由匹配功能
IPv6:使用IPv6来匹配路由。
支持TTL
支持优先
支持批处理Http请求
五、安全
身份验证:key-auth,JWT,basic-auth,wolf-rbac
IP白名单/黑名单
引荐人白名单/黑名单
IdP:支持外部身份验证服务,例如Auth0,okta等,用户可以使用它来连接到OAuth 2.0和其他身份验证方法。
极限要求
极限数
极限并发
Anti-ReDoS(正则表达式拒绝服务):Anti ReDoS的内置策略,无需配置。
CORS为您的API启用CORS(跨域资源共享)。
URI阻止程序:按URI阻止客户端请求。
请求验证器
六、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记录器)
舵图
七、高度可扩展
定制插件:允许挂钩共同相,如rewrite,access,header filter,body filter和log,还允许钩balancer阶段。
自定义负载平衡算法:您可以在此balancer阶段中使用自定义负载平衡算法。
自定义路由:支持用户自己实现路由算法。
入门#
本指南旨在开始使用Apache APISIX,我们将配置服务,该服务将路由到由API密钥保护的公共API。
另外,我们将以以下echo端点为例,它将返回我们传递的参数。
要求
回复
让我们解构以上请求URL。
通讯协定:HTTP
港口:80
主持人: httpbin.org
URI /路径: /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:
请求的路径匹配/services/users/*,*表示所有子路径,例如/services/users/getAll?limit=10。
创建此路由后,我们可以使用Apache APISIX的地址访问我们的后端服务(实际上是上游):
创建上游#
阅读以上部分后,我们知道我们必须将Upstreamfor设置为Route。只需执行以下命令即可创建一个:
我们将其roundrobin用作负载平衡器机制,并将其设置httpbin.org:80为我们的上游目标(后端服务器),其ID为50。有关更多字段,请参阅Admin API。
注意: Create an Upstream实际上并不是必需的,因为我们可以使用插件来拦截请求然后直接响应,但是假设我们需要Upstream在本指南中至少设置一个。
与上游绑定路线#
我们刚刚创建了一个上游(参考我们的后端服务),让我们绑定一条路由!
就是这样!
验证#
再次恭喜您!我们创建了一个Route和Upstream,还将它们绑定在一起。现在,让我们调用Apache APISIX来测试created route。
哇!它会从我们的Upstream(httpbin.org实际上)返回数据,它按预期工作!
进阶#
验证号码
让我们做一些有趣的事情,由于任何人都可以访问我们Route在Step2中创建的公众,我们只希望John可以访问它。让我们使用使用者和插件来实现此保护。
首先,让我们使用key-auth插件创建使用者 ,我们需要提供一个指定的密钥:John
接下来,让我们结合我们的Consumer(John)到Route,我们只需要启用的关键AUTH该插件Route:
好的,当我们Route从现在开始访问在步骤2中创建的内容时,将发生未授权错误。让我们看看如何访问它Route:
是的,刚刚添加了一个带有正确密钥的Header被叫apikey!保护任何东西都很容易Routes,对吧?
路线编号中的前缀
现在,假设您要在路由中添加前缀(例如:samplePrefix),并且不想使用host标头,则可以使用proxy-rewrite插件来执行此操作。
现在,您可以使用以下命令调用路由:
$ curl -i -X GET “ http://127.0.0.1:9080/samplePrefix/get?param1=foo¶m2=bar” -H “ apikey:约翰键”复制
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。
发行Apache APISIX 2.5
2021年4月5日
变更编号
change(zipkin):重新排列子范围#3877
核心编号
壮举:通过etcd #3905支持mTLS
壮举:升级lua-resty-expr / radixtree以支持逻辑表达式#3809
壮举:apisix启动时加载etcd配置#3799
壮举:让Balancer支持优先级#3755
壮举:为发现模块#3742添加控制API
插件编号
壮举(空中漫步):允许销毁并配置报告者的报告间隔#3925
feat(流量拆分):上游pass_host需要支持IP模式#3870
壮举:为消费者限制插件#3691在HTTP方法上添加过滤器
壮举:将allow_origins_by_regex添加到cors插件#3839
壮举:支持条件响应重写#3577
修正错误#
修复(错误日志记录器):记录器应在每个进程中运行#3912
修复:默认情况下使用内置服务器#3907
fix(traffic-split):通过上游ID绑定上游是无效的#3842
修复:更正ssl_trusted_certificate的验证#3832
修复:不要覆盖缓存相对头#3789
修复:无法make deps在macOS上运行#3718
Embarcadero RAD Studio(多功能应用程序开发工具) 编程工具177.22 MB12
详情猿编程客户端 编程工具173.32 MB4.16.0
详情猿编程 编程工具173.32 MB4.16.0
详情VSCodium(VScode二进制版本) 编程工具76.23 MBv1.57.1
详情aardio(桌面软件快速开发) 编程工具9.72 MBv35.69.2
详情一鹤快手(AAuto Studio) 编程工具9.72 MBv35.69.2
详情ILSpy(.Net反编译) 编程工具3.97 MBv8.0.0.7339 绿色
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情delphi2007完整 编程工具1198 MB附安装教程
详情SAPIEN PrimalScript2015 编程工具78.02 MB附带安装教程
详情Alchemy Catalyst可视化汉化工具 编程工具81.00 MBv13.1.240
详情Professional Tag Editor(通用标签编辑器) 编程工具25.6 MBv1.0.6.8
详情Coffeecup HTML Editor(html网页编辑器) 编程工具68.98 MBv15.4 特别版
详情JCreator Pro 编程工具9.65 MBv5.0.1 汉化
详情WebStorm 12中文 编程工具209.88 MB附带安装教程
详情MSWLogo(多功能项目开发与管理工具) 编程工具2.25 MBv6.5 免费版
详情JetBrains datagrip 2018.2.1中文-datagrip 2018.2.1 编程工具160.88 MB附注册码汉化包
详情易安卓5.0 编程工具202 MBv5.0 附破解补丁
详情keil uvision5 编程工具271.63 MB附带安装教程
详情CIMCO Edit V8中文 编程工具248 MB附安装教程
详情IntelliJ IDEA 2020.1(java集成开发环境) 编程工具643.0 MB附安装教程
详情redis desktop manager2020.1中文 编程工具32.52 MB附带安装教程
详情猿编程 编程工具173.32 MB4.16.0
详情信捷PLC编程工具软件 编程工具14.4 MBv3.5.2 官方版
详情源码编辑器 编程工具201.0 MBv3.4.3 官方版
详情Microsoft Visual C++ 编程工具226.00 MBv6.0 SP6 简体中文版
详情s7 200 smart编程软件 编程工具187 MBv2.2 官方中文版
详情TouchWin编辑工具(信捷触摸屏编程软件) 编程工具55.69 MBv2.D2c 官方版
详情易语言5.8完美 编程工具312 MB5.8.1 破解增强版
详情Scraino(少儿编程软件) 编程工具272.93 MBv0.3.0 官方版
详情vs2008中文 编程工具1495 MB附序列号
详情e盾网络验证源码 编程工具25.77 MBV45 官方版
详情codeblocks 编程工具95.21 MBv13.12 中文完整版(带GNW编译器
详情Android Studio(安卓开发环境) 编程工具983.0 MBv3.5.0.21 汉化版(附安装教程)
详情源码编辑器pc版 编程工具201.0 MBv3.4.3 官方版
详情CH341A编程器 编程工具1.06 MB1.30 绿色中文版
详情layuiAdmin pro(layui后台管理模板系统) 编程工具0.57 MBv1.1.0 单页版
详情海龟编辑器 编程工具71.5 MBv0.8.4 中文版
详情Ardublock中文版(Arduino图形化编程软件) 编程工具2.65 MB附带安装教程
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情富途牛牛 编程工具160.59 MBv11.8.9068 官方版
详情微信开发者工具 编程工具129.37 MBv1.05.2105170 官方版
详情UEStudio v18.0.0.18 简体中文绿色 编程工具19.00 MB
详情十六进制编辑器 WinHex 编程工具2.79 MBv20.2 SR-5
详情代码编辑器 Sublime Text 编程工具54.74 MBv4.0.0.4126
详情RJ TextEd(代码编辑器) 编程工具49.46 MBv15.31
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情影刀 编程工具306.37 MBv4.9.14
详情Kate(高级文本编辑器) 编程工具56.11 MBv21.12.1.1544
详情