安下载编程开发

分类分类

Apache APISIX(微服务API网关)

Apache APISIX(微服务API网关)

v2.5 官方版

大小:0.3 MB 更新:2021/05/13

类别:编程工具系统:WinXP, Win7, Win8, Win10, WinAll

立即下载

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

Apache APISIX(微服务API网关)

软件功能

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

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

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

  Apache APISIX的技术架构:

Apache APISIX(微服务API网关)

  您可以将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端点为例,它将返回我们传递的参数。

  要求

Apache APISIX(微服务API网关)

  回复

Apache APISIX(微服务API网关)

  让我们解构以上请求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:

Apache APISIX(微服务API网关)

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

Apache APISIX(微服务API网关)

  我们希望返回以下数据:

Apache APISIX(微服务API网关)

  第2步:创建路由#

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

  在我们继续之前#

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

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

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

Apache APISIX(微服务API网关)

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

  请求的HTTP方法是GET;

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

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

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

Apache APISIX(微服务API网关)

  创建上游#

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

Apache APISIX(微服务API网关)

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

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

  与上游绑定路线#

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

Apache APISIX(微服务API网关)

  就是这样!

  验证#

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

Apache APISIX(微服务API网关)

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

  进阶#

  验证号码

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

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

Apache APISIX(微服务API网关)

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

Apache APISIX(微服务API网关)

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

Apache APISIX(微服务API网关)

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

  路线编号中的前缀

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

Apache APISIX(微服务API网关)

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

  $ 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网关?

  微服务领域对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

精品推荐
同类推荐
相关下载
  • 最新排行
  • 最热排行
  • 评分最高
编程开发排行榜
实时热词