本期推荐的是一个云原生、高性能、可扩展的微服务 API 网关。它是基于 Nginx 和 etcd 来实现,和传统 API 网关相比,APISIX 具备动态路由和插件热加载,适合微服务体系下的 API 管理。
特点:
可以使用Apache APISIX作为流量入口处理所有业务数据,包括动态路由、动态上游、动态证书、A/B测试、金丝雀发布、蓝绿部署、限速、防御恶意攻击、指标、监控告警、服务可观察性、服务治理等。
1.适用于各种平台:
云原生:平台无关,无供应商锁定,APISIX 可以从裸机运行到 Kubernetes
运行环境:支持OpenResty和Tengine
支持ARM64:不用担心基础技术的锁定
2.支持多种协议
TCP/UDP 代理:动态 TCP/UDP 代理
Dubbo Proxy : 动态 HTTP 到 Dubbo 代理
动态 MQTT 代理:支持 MQTT 负载均衡client_id,均支持 MQTT 3.1.* , 5.0
gRPC 代理:代理 gRPC 流量
gRPC 转码:支持协议转码,以便客户端可以使用 HTTP/JSON 访问您的 gRPC API
Proxy Dubbo:基于Tengine的Dubbo Proxy
HTTP(S) 转发代理
SSL:动态加载 SSL 证书
3.更加安全的处理
身份验证:key-auth、JWT、basic-auth、wolf-rbac、casbin、keycloak
IP白名单/黑名单
推荐人白名单/黑名单
IdP:支持外部认证服务,如Auth0、okta等,用户可以使用它连接OAuth 2.0等认证方式
Anti-ReDoS(正则表达式拒绝服务):无需配置即可实现 Anti-ReDoS 的内置策略
CORS为您的 API 启用 CORS(跨源资源共享)
URI Blocker:通过 URI 阻止客户端请求
4.可扩展度
定制插件:允许挂钩共同相,如rewrite,access,header filter,body filter和log,还允许钩balancer阶段。
插件可以用Java/Go/Python编写
自定义负载均衡算法:您可以在该balancer阶段使用自定义负载均衡算法。
自定义路由:支持用户自行实现路由算法。
使用:
第一步:安装依赖
第二步:安装 Apache APISIX
第三步:管理 Apache APISIX 服务器
第四步:运行测试用例
第五步:更新管理 API 令牌以保护 Apache APISIX
第六步:为 Apache APISIX 构建 OpenResty
第七步:为 Apache APISIX 添加 Systemd 单元文件
Apache APISIX 的优势
APISIX属于阿帕奇基金会,技术架构使用nginx+etcd,沟通渠道包括邮件,微信,QQ,GitHub,Slack等,支持潜伏、配置回滚、插件热加载、自定义路由,Rest Aps到GRPC转码,独有的仪表盘,配置中心高可用,支持i任何Nginx变量作为路由条件等。