FCon7折倒计时最后一周:日程已上线70%!查看详情>>> 了解详情
写点什么

APISIX 进入 Apache 孵化器

  • 2019-10-25
  • 本文字数:1578 字

    阅读完需:约 5 分钟

APISIX 进入 Apache 孵化器

美国时间 2019 年 10 月 17 日,开源微服务 API 网关 APISIX 正式进入 Apache 孵化器。


根据 Apache 基金会邮件列表显示,11 个约束性 (binding votes) 和 1 个无约束性 (non-binding vote) 的投票全部持赞同意见,无弃权票和反对票,投票顺利通过。



由初创公司深圳支流科技贡献的 APISIX 是一个高性能、可扩展的微服务 API 网关。它是基于 Nginx 和 etcd 来实现,和传统 API 网关相比,APISIX 具备动态路由、插件热加载、gRPC 协议转换等功能,适合微服务体系下的 API 管理。

APISIX 的开发原因

API 网关并非一个新兴概念,在十几年前就已经存在了,它的作用主要是作为流量入口,统一处理和业务相关的请求,让请求更加安全、快速和准确得到处理。它有以下传统的功能:


  • 反向代理和负载均衡,这和 Nginx 的定位和功能是一致的;

  • 动态上游、动态 SSL 证书和动态限流限速等运行时动态功能,这是开源版本 Nginx 并不具备的功能;

  • 上游主动和被动健康检查,以及服务熔断;

  • 在 API 网关基础之上进行扩展,成为全生命周期的 API 管理平台。


在最近几年,业务相关流量不再仅仅是由 PC 客户端和浏览器发起,更多来自手机、IoT 等设备。未来随着 5G 的普及,这些流量会越来越多。同时,伴随微服务架构的结构变迁,服务之间的流量也开始爆发性增长。在这种新的业务场景下,催生了 API 网关更多功能:


  • 云原生友好,架构要变得轻巧,便于容器化;

  • 对接 Prometheus、Zipkin、Skywalking 等统计、监控组件;

  • 支持 gRPC、Dubbo、websocket、MQTT 等协议的代理,以及 http 到 gRPC 之间的协议转换,以便适应更广泛场景;

  • 承担 OpenID Relying Party 的角色,对接 Auth0、okta 等身份认证提供商的服务,把流量的安全作为头等大事来对待;

  • 通过运行时动态执行用户函数的方式来实现 Serverless,让网关的边缘节点更加灵活;

  • 支持插件的热加载,新增、删除和修改插件,都不用重启服务;

  • 不锁定用户,支持混合云的部署架构;

  • 最后就是网关节点要状态无关,可以随意扩容和缩容。


有了这些功能,用户的服务就只用关心业务本身,而和业务实现无关的功能,比如服务发现、服务熔断、身份认证、限流限速、统计、性能分析等,就可以在独立的网关层面来解决。从这个角度来看,API 网关既可以替代 Nginx 的所有功能,来处理南北向的流量,也可以完成 Istio 控制面和 Envoy 数据面的角色,来处理东西向的流量。


而现有的开源 API 网关并不能很好的满足,所以支流的技术团队决定自己实现,也就是 APISIX。

APISIX 的发展历程

APISIX 在 2019 年 6 月 6 号开源后,很快就获得了开发者的关注,并在一个月之后被收录到 CNCF(云原生软件基金会) 全景图中。


现在 APISIX 在 GitHub 有 800 多个 star,近 30 名代码贡献者,并聚集了 500 多人的开发者社区。从开源之初,APISIX 就保持每个月发布一个版本,并坚持测试驱动开发、自动化 CI/CD 等理念,来保证代码的质量和稳定性。


目前,参与开发、测试和使用 APISIX 的公司包括:贝壳找房、魅族、大搜车、租租车、腾讯云、海尔优家、泰康云、中国航信、HelloTalk、fansup 等。

APISIX 的特点

Apache APISIX 在技术上与其他 API 网关相比,有以下几个不同之处:


一是使用 etcd 而不是关系型数据库来保存配置,大大降低使用、部署和维护的复杂度,也让代码变得更加易读,核心代码只有 3892 行,有利于二次开发和扩展。下图是 Apache APISIX 的部署架构图:



二是插件可以热插拔,不用重启服务。并且已经内置了常见的限流限速、身份认证、请求改写、URI 重定向、opentracing、serverless 等插件,开箱即用:



三是从路由、jsonschema 校验,到插件运行,都采用了性能优先的解决方案,在性能测试跑满 CPU 的情况下,请求的平均延时不到 0.7 毫秒,不到同类开源项目的十分之一。(下图的横坐标表示 CPU 的核数)




关于 Apache APISIX 的更多功能,可以访问项目主页来查看。


有兴趣的开发者可以关注 APISIX,加入 APISIX 社区。


2019-10-25 15:4612656

评论 7 条评论

发布
用户头像
666
2019-11-05 11:49
回复
用户头像
api666!
2019-11-04 08:58
回复
用户头像
好厉害~
2019-10-25 22:39
回复
用户头像
我是来说 six six six的
2019-10-25 17:08
回复
用户头像
Authing 下一波重构将采纳 APISIX:)
2019-10-25 16:18
回复
用户头像
恭喜恭喜,666
2019-10-25 16:13
回复
用户头像
赞👍
2019-10-25 16:08
回复
没有更多了
发现更多内容

MASA Stack 1.0 发布会 —— 社区问题解答

MASA技术团队

.net stack 应用现代化 MASA

嵌入式ARM设计编程(二) 字符串拷贝

timerring

arm

「 代码性能优化 」作为一名Java程序员,你真的了解 synchronized 吗?(三)

小刘学编程

Java 性能优化 synchronized java锁

面试必问:JVM 如何确定死亡对象?

王磊

java面试

研发提效:服务端技术方案模板参考

邴越

技术方案 模版

模块六作业

张贺

「 代码性能优化 」作为一名Java程序员,你真的了解 synchronized 吗?(二)

小刘学编程

Java 性能优化 synchronized java锁

ChatGPT这波热潮会不会让我失业?

eng八戒

人工智能 AI 聊天机器人 openai ChatGPT

【2023年最新】轻松搞定MySQL数据库迁移

NineData

MySQL 数据库迁移 数据复制 数据迁移 SqlServer

无需依赖Docker环境制作镜像

tiandizhiguai

Docker k8s

GuitarPro2024免费版吉他打谱工具

茶色酒

GuitarPro

极客时间运维进阶训练营第十四周作业

9527

「 数据结构与算法 」如何系统性的学习数据结构与算法

小刘学编程

Java 学习路线 数据结构与算法

2023-02-15:商场中有一展柜A,其大小固定,现已被不同的商品摆满, 商家提供了一些新商品B,需要对A中的部分商品进行更新替换, B中的商品可以自由使用,也就是可以用B中的任何商品替换A中的任何

福大大架构师每日一题

算法 rust 福大大

【Java基础】常用序列化技术与方式

No8g攻城狮

通信协议 网络通信协议

ChatGPT入门案例|商务智能对话客服(二)| 社区征文

TiAmo

openai ChatGPT

「 代码性能优化 」作为一名Java程序员,你真的会写for循环吗?

小刘学编程

Java 性能优化 for循环 技巧总结

「 代码性能优化 」作为一名Java程序员,你真的了解 synchronized 吗?(一)

小刘学编程

Java 性能优化 synchronized java锁

CleanMyMacX4.12.5中文版苹果电脑管家

茶色酒

CleanMyMacX4.12.5

运维训练营第14周作业

好吃不贵

Python 内置界面开发框架 Tkinter入门篇 丙

eng八戒

Python GUI tkinter

我不想再传递 nameof 了

newbe36524

C# Docker Kubernetes

「 代码性能优化 」java高级程序员必知必会的55个代码性能优化技巧

小刘学编程

Java 性能优化 高级程序员 代码技巧

Python 内置界面开发框架 Tkinter入门篇 丁

eng八戒

Python GUI tkinter

「 技术文章翻译 」jasypt-spring-boot敏感信息加密解密利器使用指南

小刘学编程

加密解密 springboot jasypt

「 前端开发规范 」10人小团队前端开发规范参考这篇就够了

小刘学编程

前端 统一代码规范 高效协同

「 Java开发规范 」10人小团队Java开发规范参考这篇就够了

小刘学编程

Java 数据库规范 代码规范 项目规范

自媒体营销或已死,内容营销为何越来越难做?

石头IT视角

EasyRecovery2023新版本有哪些新功能?

茶色酒

EasyRecovery EasyRecovery15 easyrecovery2023

软件测试 | App结构概述

测吧(北京)科技有限公司

测试

Flink X Hologres 构建企业级 Streaming Warehouse

Apache Flink

大数据 flink 实时计算

  • 扫码添加小助手
    领取最新资料包
APISIX 进入 Apache 孵化器_语言 & 开发_温铭_InfoQ精选文章