category
APISIX被设计用于处理大量请求,并且具有较低的二次开发阈值。
Apache软件基金会最新的顶级项目API网关APISIX迅速崛起。
2019年4月诞生于中国智流科技,6月开源,去年10月进入Apache孵化器。
据该项目副总裁明文介绍,最初只有大约20名贡献者,经过7个月的孵化,现在有近100名贡献者——其中包括26名贡献者。
在一个充斥着API网关选项的市场上,为什么要创建一个新的网关?
温表示,云原生架构带来了全新的挑战,来自网站、移动和物联网应用程序的流量也是如此。
“我们调查了几个流行的开源API网关项目,发现它们都无法解决云原生和微服务带来的这些新挑战,”他说。
“有些只适合处理企业内网流量,无法处理数万个客户端请求;有些依赖关系数据库,无法轻松、弹性地扩展。这主要是因为技术发展太快。在设计这些API网关的架构时,云原生和微服务还没有普及。
“我们也考虑过实现基于Envoy的API网关,但Envoy更难起步和开发,不适合在南北流量中使用。”
他说,APISIX旨在处理大量请求,并且二次开发的门槛很低。发音为“API六”;最初的公司提供商业版本API7。
温这样概括设计标准:
- 云原生、轻量级且易于容器化
- 集成普罗米修斯、Apache Skywalking和Zipkin等统计和监控组件。
- 支持gRPC、Dubbo、WebSocket、MQTT等代理协议,以及从HTTP到gRPC的协议转码,以适应更广泛的场景
- 扮演OpenID依赖方的角色,连接Auth0、Okta等身份验证提供商的服务
- 通过在运行时动态执行用户功能来支持无服务器,使网关的边缘节点更加灵活
- 支持插件热加载
- 不锁定用户,支持混合云部署架构
- 最后,网关节点应该是无状态的,并且可以扩展和灵活。
温说:“有了这些功能,用户的服务只关心业务本身,而与业务实现无关的功能,如服务发现、身份验证、统计、度量等,都可以在网关上解决。”。
“从这个角度来看,API网关既可以取代Nginx来处理南北流量,也可以发挥Istio控制平面和Envoy数据平面的作用来处理东西流量。
模块化设计
APISIX由一个数据平面组成,用于动态控制请求流量;一个用于存储和同步网关数据配置的控制平面,以及一个用于编排插件的AI平面,以及对请求流量的实时分析和处理。
它构建在Nginx反向代理服务器和键值存储等之上,以提供轻量级网关。它主要是用Lua编写的,Lua是一种类似于Python的编程语言。它使用根树进行路由,使用前缀树进行IP匹配。
温表示,使用etcd来存储配置,而不是关系数据库,使其更接近云原生,但也确保了整个网关系统的可用性,即使任何服务器都关闭了。
所有组件都是作为插件编写的,因此其模块化设计意味着功能开发人员只需关心自己的项目。
其内置插件包括电流和速度限制、身份验证、请求重写、URI重定向、开放跟踪和无服务器。
它同时支持OpenResty和Tengine运行环境,并且可以在Kubernetes的裸机上运行。它同时支持X86和ARM64。
温在《中英文》的一篇文章中指出了与竞争对手的具体区别:
- 按需“继承”
- 按重要性排列
- 允许在Nginx的所有阶段安装
- 插件热加载和卸载
语音识别初创公司AISpeech的高级研发总监张顺(Shun Zhang)表示:“我们基于Apache APISIX开发了Kubernetes入口控制器,以取代Kubernetes-native入口,处理所有南北集装箱集群和部分东西交通。APISIX的高性能路由、灵活的插件机制、API管理和设计理念正是云原生架构的需要。”。
该项目标榜其微服务架构的性能、低延迟和可扩展性。它坚持认为,与竞争对手相比,它的性能提高了5到10倍。
欧盟的智能工厂计划eFactory、中国科技巨头腾讯和多币种网站Airwallex都在生产中使用APISIX。
他说,这些公司正在为该项目做出贡献,并提供反馈,“这形成了一个良性循环,促进了社区的多样性和健康发展。这也是开源的魅力所在。”。
在七个月的时间里,该项目已经发布了六个版本。
奥地利Salzberg Research的软件工程师Nirojan Selvanathan在一段视频中表示,在eFactory项目的工作中,它发现APISIX有三个优势:
- 处理使用多个平台所涉及的延迟。
- 模块化和无状态体系结构为编写用于处理多个平台和多个身份验证系统的插件提供了一种更简单的方法。
- MQTT支持非常适合它所处理的制造数据。
更多Kubernetes,AI
腾讯云工程师李辉(音)表示:“最近移动应用互连、企业互操作性和物联网需求的增长,将后端服务支持对象从单一的web应用扩展到了多种使用场景。这增加了后端服务的访问压力和复杂性。解决这一问题的合适方案是API网关……我们评估了许多API网关,最终选择Apache APISIX作为我们新一代API网关的核心组件,因为它具有高性能、高可扩展性和活跃的社区。”。
展望未来,该项目计划增强控制平面,使APISIX更容易在Kubernetes环境中运行。
它也在扩大其人工智能飞机的能力。温表示,负载平衡、动态上行和身份验证等功能不足以应对当前复杂多变的终端请求。本着这种精神,帮助用户在流量处理层面完成一些AIOps功能,提高工作效率。
它还计划解决服务网格问题,他称之为“一个非常重要的方向”
- 登录 发表评论
- 26 次浏览
最新内容
- 17 hours ago
- 19 hours ago
- 20 hours ago
- 3 days 10 hours ago
- 3 days 18 hours ago
- 3 days 18 hours ago
- 3 days 19 hours ago
- 3 days 19 hours ago
- 1 week 1 day ago
- 1 week 1 day ago