热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

APISIX进入Apache孵化器

apisix,进入,a

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

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

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

支流科技为什么开发 APISIX?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

而现有的开源 API 网关并不能很好的满足,所以支流的技术团队决定自己实现一个简洁、高效、方便扩展的 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 社区将遵循 The Apache Way,用更加开放和全球化的视野,欢迎更多的开发者参与到社区建设中来,让社区持续健康的发展。欢迎开发者关注 APISIX,一起来构建世界级的开源项目。


推荐阅读
  • 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)【下载本文PDF进行阅读】设计模式是前人通过大量的实践总结出来的一些经验总结和最佳实践。在经过多年的软件开发实践之后,回过头 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Nginxgaodaima.comnginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • nginx+多个tomcat
    学习nginx的时候遇到的问题:nginx怎么部署两台tomcat?upstream在网上找的资源,我在nginx配置文件(nginx.conf)中添加了两个server。结果只显 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
author-avatar
风中摇曳一
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有