国产开源项目 APISIX:基于云原生的微服务 API 网关

  • A+
所属分类:技术资讯

技术编辑:北京卡尔博客发来的:卡尔博客
APISIX是基于云的默认微服务API网关,它是所有业务通信的门户,可以处理传统的南北间通信或服务之间的东西方通信,也可以用作k8s ingress controller。APISIX由深圳支流技术组开发,然后进入Apache基金会,开始孵化。
APISIX通过插件机制提供动态负载平衡、身份验证、电流限制速率限制等功能,并支持用户自行开发的插件。
有关详细信息,请参阅APISIX白皮书。
Apache APISIX可以用作流量门户,以处理所有业务数据,例如动态路由、动态上游、动态证书、A/B测试、金丝雀发布(灰度发布)、青色分发、流量限制速率限制、防止恶意攻击、警报监控、服务观察和服务治理。
项目地址:https://github.com/apache/inc.
功能
整个平台
您可以在裸机或Kubernetes上运行APISIX,而无需锁定供应商,而无需考虑云基础:平台。
运行环境: OpenResty和Tengine都受支持。
您不必担心ARM64:支持基本技术锁定。
多协议
TCP/UDP代理3360动态TCP/UDP代理。
动态MQTT代理3360使用client_id支持MQTT的负载平衡,同时支持两种协议标准:MQTT3.1.*和5.0。
gRPC代理:通过APISIX代理gRPC连接,使用APISIX的大部分功能管理GRPC服务。
GRPC协议转换:支持协议转换,以便客户机可以通过HTTP/JSON访问用户的gRPC API。
web socket代理
代理协议
Dubbo代理程式:可让您根据Tengine实行Dubbo要求的代理程式。
HTTP(S)反向代理
SSL:动态加载SSL证书。
完全动态功能
热更新和热插件3360可以持续更新配置和插件,而无需重新启动服务。
代理请求重写:支持重写请求上游的host、uri、schema、enable_websocket和headers信息。
重写输出内容:支持自定义修正返回内容的状态代码、body和headers。
可以在Serverless: APISIX的每个步骤中添加和调用您自己编写的函数。
动态负载平衡:动态支持加权round-robin负载平衡。
支持coherence hash的负载平衡:动态支持coherence hash的负载平衡。
状况检查:启用上游节点的状况检查,会在负载平衡期间自动筛选不健康的节点,以确保系统稳定性。
保险丝:智能跟踪不健康上游服务。
具体化路由
支持完整路径匹配和前缀匹配
支持将Nginx中的所有内置变量用作路由条件,从而可以使用cookie、args等作为路由条件来实现灰度发布、A/B测试等功能
支持{'arg _ age,'',24}等各种运算符作为路由的判断条件
支持定制路由匹配函数
IPv6:支持使用IPv6格式进行路由匹配
支持路由的自动过期(TTL)
路由的优先级支持
安全保护
各种验证方法: key-auth、jwt、basic-auth、wolf-RBAC。
IP黑白列表
IdP支持3360的外部身份验证服务(如Auth0、Okta、Authing等),允许用户停靠身份验证机制(如Oauth2.0)。
速度限制
限制请求数
限制并发性
防御ReDoS(拒绝正则表达式服务):使用内置策略保护ReDoS,无需配置。
CORS
云比友好
OpenTracing可观察性:支持Apache Skywalking和Zipkin。
监视和指标:Prometheus
群集:APISIX节点为无状态;有关创建配置中心群集的信息,请参阅《etcd Clustering Guide》(etcd群集指南)。
高可用性:支持在同一群集内配置多个etcd地址。
控制台:内置了用于操作APISIX群集的控制台。
版本控制:支持作业的多个回滚。
CLI:使用命令行启动、关闭和重新启动APISIX。
独立模式:支持从本地配置文件加载路由规则,因此在kubernetes(k8s)等环境中更为熟悉。
全局规则:可以对所有请求(如黑白列表、限制流速率限制等)运行插件。
高性能:只需0.2毫秒的延迟,即可在单核到18k之间使用QPS。
故障注入
REST Admin API
python SDK
高可扩展性
自定义插件:允许您装载通用步骤,如init、rewrite、access、balancer、header filer、body filter和log步骤。
自定义负载平衡算法:可以在balancer阶段使用自定义负载平衡算法。
定制路由:支持用户实现直接路由算法。
安装
APISIX可以在以下操作系统上成功执行安装和运行测试:OpenResty的版本必须=1.15.8.1。
Centos 7、Ubuntu 16.04、Ubuntu 18.04、debian 9、debian 10、MAC OS、arm 64 Ubuntu 18.04
安装APISIX:
安装运行时相关:OpenResty和etcd,参考相关安装文档
要安装Apache APISIX:请执行以下操作
通过源软件包安装;
如果使用CentOS 7,则可以使用RPM软件包进行安装。
可以使用Luarocks安装的其他Linux操作系统:
也可以使用Docker镜像进行安装。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: