APISIX2.0功能简介

APISIX 是一个云原生、高性能、可扩展的微服务 API 开源网关,基于OpenResty(Nginx+Lua)和etcd来实现,对比传统的API网关,具有动态路由和热插件加载的特点。系统本身自带前端,可以手动配置路由、负载均衡、限速限流、熔断、金丝雀发布、身份验证、可监控等插件,操作方便。可以使用Apache APISIX来处理传统的南北流量,以及服务之间的东西流量。它也可以用作k8s入口控制器。
APISIX2.0功能简介
您可以将Apache APISIX用作处理所有业务数据的流量入口,包括动态路由,动态上游,动态证书,A / B测试,金丝雀发布,蓝绿色部署,限制速率,防御恶意攻击,指标,监视警报,服务可观察性,服务治理等。

  • 支持所有平台
    原生云:与平台无关,无供应商锁定,APISIX可以从裸机运行到Kubernetes。
    运行环境:同时支持OpenResty和Tengine。
    支持ARM64:不用担心基础技术的锁定。

  • 多协议
    TCP / UDP代理:动态TCP / UDP代理。
    动态MQTT代理:支持按client_id负载均衡,同时支持MQTT 3.1.*,5.0。
    gRPC代理:代理gRPC通信。
    gRPC转码:支持协议转码,以便客户端可以使用HTTP / JSON访问您的gRPC API。
    代理Websocket代理协议代理Dubbo:基于Tengine的Dubbo代理。
    HTTP(S)转发代理。
    SSL:动态加载SSL证书。

  • 全动态
    热更新和热插件:不断更新其配置和插件,而无需重新启动!
    代理重写:在发送到上游之前,支持重写主机,uri,架构,enable_websocket,请求标头。
    响应重写:为客户端设置自定义的响应状态代码,正文和标头。
    无服务:在APISIX的每个阶段调用功能。
    动态负载均衡:循环负载均衡。
    基于哈希的负载均衡:具有一致的哈希会话的负载均衡。
    健康检查:在上游节点上启用健康检查,并在负载均衡期间自动过滤不正常的节点,以确保系统稳定性。
    熔断器:智能跟踪不健康的上游服务。
    代理镜像:提供镜像客户端请求的功能。

  • 细粒度路由
    支持全路径匹配和前缀匹配。
    支持所有Nginx内置变量作为路由条件,因此您可以使用cookie,args等作为路由条件来实现金丝雀发布,A / B测试等。
    支持各种运算符作为判断条件用于路由,例如{“ arg_age”,“>”,24}
    支持自定义路由匹配功能
    IPv6:使用IPv6来匹配路由。
    支持TTL
    支持优先级
    支持批量Http请求

  • 安全认证
    身份验证:**身份验证,JWT,基本身份验证,wolf-rbac
    IP白名单/黑名单
    引用白名单/黑名单
    IdP:支持外部身份验证服务,例如Auth0,okta等,用户可以使用它来连接到OAuth 2.0和其他身份验证方式。
    Limit-req : 请求限流(基于漏桶算法)
    Limit-count : 连接数限流
    Limit-conn : 并发限流
    Anti-ReDoS(正则表达式拒绝服务):Anti ReDoS的内置策略,无需配置。
    CORS为您的API启用CORS(跨域资源共享)。
    URI阻断:按URI阻止客户端请求。
    请求验证

  • 友好便捷运维
    OpenTracing:支持Apache Skywalking和Zipkin
    结合第三方服务发现的组件一起使用:除了内置的etcd外,它还支持Consul和Nacos DNS发现模式,以及Eureka
    监控和统计:Prometheus
    集群:APISIX节点是无状态的,创建了配置中心,请参阅etcd集群指南。
    高可用:支持在同一集群中配置多个etcd地址。
    控制台:内置控制台可在控制台上操作APISIX。
    版本控制:支持操作回滚。
    CLI:通过命令行启动\停止\重新加载APISIX。
    独立模式:支持从本地yaml文件加载路由规则。在kubernetes(k8s)下,更加友好。
    全局规则:允许针对所有请求运行任何插件,例如:限流插件,IP黑白名单等。
    高性能:单核QPS达到18k,平均延迟小于0.2毫秒。
    故障注入
    REST Admin API:使用REST Admin API控制Apache APISIX(默认情况下仅允许127.0.0.1访问),您可以修改conf / config.yaml中的allow_admin字段以指定允许调用IP的IP列表。管理员API。另请注意,Admin API使用**身份验证来验证调用方的身份。部署前需要修改conf / config.yaml中的admin_key字段,以确保安全。
    支持日志导出:将访问日志导出到外部日志管理工具。 (HTTP记录器,TCP记录器,Kafka记录器,UDP记录器)

  • 高度可扩展
    自定义插件:允许hook在公共阶段,例如rewrite, access, header filer, body filter and log阶段等,还允许hooK在balancer阶段。
    自定义负载均衡算法:可以在balancer阶段使用自定义负载均衡算法。
    自定义路由:支持用户自己实现路由算法。