APISIX 进入 Apache 孵化器
美国时间 2019 年 10 月 17 日,开源微服务 API 网关 APISIX 正式进入 Apache 孵化器。
根据 Apache 基金会邮件列表显示,11 个约束性 (binding votes) 和 1 个无约束性 (non-binding vote) 的投票全部持赞同意见,无弃权票和反对票,投票顺利通过。
由初创公司深圳支流科技贡献的 APISIX 是一个高性能、可扩展的微服务 API 网关。它是基于 Nginx 和 etcd 来实现,和传统 API 网关相比,APISIX 具备动态路由、插件热加载、gRPC 协议转换等功能,特别适合微服务体系下的 API 管理。
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 是一个蓬勃发展的开源项目,在 2019 年 6 月 6 号开源后,很快就获得了开发者的关注和兴趣,并在一个月之后被收录到 CNCF(云原生软件基金会) 的全景图中。
现在 APISIX 在 GitHub 有 800 多个 star,近 30 名代码贡献者,并聚集了 500 多人的开发者社区。从开源之初,APISIX 就保持每个月发布一个版本,并坚持测试驱动开发、自动化 CI/CD 等理念,来保证代码的质量和稳定性。
目前,参与开发、测试和使用 APISIX 的公司包括:贝壳找房、魅族、大搜车、租租车、腾讯云、海尔优家、泰康云、中国航信、HelloTalk、fansup 等。
Apache APISIX 在技术上与其他 API 网关相比,有以下几个与众不同之处:
使用 etcd 而不是关系型数据库来保存配置,这就大大降低了使用、部署和维护的复杂度,也让代码变得更加易读,核心代码只有 3892 行,非常有利于二次开发和扩展。下图是 Apache APISIX 的部署架构图:
插件可以热插拔,不用重启服务。并且已经内置了常见的限流限速、身份认证、请求改写、URI 重定向、opentracing、serverless 等插件,开箱即用:
极致的性能。从路由、jsonschema 校验,到插件运行,都是采用了性能优先的解决方案,在性能测试跑满 CPU 的情况下,请求的平均延时也不到 0.7 毫秒,不到同类开源项目的十分之一。(下图的横坐标表示 CPU 的核数)
关于 Apache APISIX 的更多功能,可以访问项目主页来查看。
APISIX 社区将遵循 The Apache Way,用更加开放和全球化的视野,欢迎更多的开发者参与到社区建设中来,让社区持续健康的发展。欢迎开发者关注 APISIX,一起来构建世界级的开源项目。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ExTiX 19.10 发布,终极 Linux 系统
ExTiX 19.10已经发布,ExTiX 是一个基于 Ubuntu 的桌面发行版。新版本主要内容如下: 基于 Ubuntu 19.10(EoanErmine) 默认使用最新的 LXQt 0.14.1 桌面环境,而不是 GNOME 最新的 Linux 5.3.7 内核,开发人员对内核进行了优化,以支持更多的硬件,以及 Nvidia 430.50 专用图形驱动程序 Refracta Snapshot,以构建自己的 Ubuntu 19.10 live ISO 参考:softpedia
- 下一篇
微软重新设计 Edge for Android 的用户界面
微软开发的基于 Chromium的 Edge浏览器的桌面版是越来越受关注的,而现在,微软正在积极改进其浏览器的移动版本。据 Windows Central 报道,该公司正在为 Edgefor Android 浏览器推出全新的用户界面体验,其中包括对导航栏和菜单的完全修改。 正如上面截图所示,新的设计对浏览器的大多数 UI 元素进行了全面的修改,包括地址栏和导航图标。屏幕底部的导航条也用 Share 按钮替换“Continue on PC”按钮,而省略号菜单移动到中心,而不是在原来的右下角。 不过,最显著的变化是省略号菜单。以前,省略号菜单中的功能选项是以列表方式展示,而随着更新修改,大多数功能选项被迁移到省略号菜单中,导致它的列表是变得太长了。为了避免这种情况出现,新的菜单使用网格布局,对于部分功能选项来说,如收藏、下载、历史以及打开新选项卡等,用户的访问更加方便快捷,该菜单还可以自定义,允许用户自行添加或删除任何想要的功能,同样可以重新排列菜单项。 目前,这一新的设计是A/B 测试阶段,微软正逐渐地将这款移动应用程序提升到与桌面上新版的 Chromium Edge 一样的设计水平。 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能