硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

Tengine 开源 5 周年:不忘初心 继续前行

  • 2016-12-26
  • 本文字数:1963 字

    阅读完需:约 6 分钟

Tengine,轻量级 Web 服务器,基于

Nginx 进行开发,针对大访问量网站的需求,新增了很多高级功能和特性。比如,Tengine 兼容 Nginx 的所有配置,并且增加了动态模块加载、集成了 Lua 语言进行扩展等很多实用的功能,并在性能方面做了较大的提升。Tengine 在微博、土豆、小米等大型互联网公司均有使用,阿里集团内部几乎所有需要使用七层负载均衡软件或者 Web 服务器的场景中也都有使用。

2011 年 12 月,Tengine 宣布开源。时至今日,已是 Tengine 走过的第 5 个开源年头。值此开源 5 周年之际,InfoQ 特采访了项目发起人及主要负责人朱照远(叔度),希望能够向大家详细的介绍一下 Tengine 的日常维护及后续发展。

采访嘉宾:

朱照远,2009 年加入淘宝网,花名叔度,现在是阿里云 CDN 团队负责人,负责阿里巴巴 Web 服务器、CDN 等系统的研发。他是开源 Web 服务器项目 Tengine 的发起人。他的研究方向包括高性能服务器开发、大型网站的架构和性能优化、云计算技术等领域。

InfoQ:作为 Tengine 开源项目的发起人及主要负责人,请您谈谈您在项目中主要起什么作用?目前开发和维护 Tengine 的人员有哪些?

叔度:我在项目中主要负责制定项目的开发计划并参与到开发之中。同时也负责审核团队里其他工程师提交的代码、日常问题解答等。

目前,公司内部有 3-4 人参与开发和维护 Tengine 项目,比如,我的工作平常主要就是负责负载均衡软件 Tengine 的维护和开发。不过,外部也有部分爱好者提交 patch,目前社区中提交并收入 patch 的开发人数有超过 50 人。

InfoQ:关于 Tengine 的发展历程,也许您最有发言权,那么您和您的团队在 Tengine 维护过程中都遇到过哪些困难?平时是怎么收集 bug 信息及用户反馈的呢?

叔度: 许多核心改动官方不支持,导致分支差异较大,每次合并 Nginx 主干需要花费相当大的 review 和测试时间;还有就是当开源项目与内部业务的时间安排相冲突时,内部业务任务紧急所导致的开发资源紧缺,这是目前我们面对的主要困难。

关于 bug 信息和用户反馈等的收集,我们主要还是通过 GitHub issue,当然用户邮件私信反馈上来的问题也占一部分。

InfoQ:Tengine 是基于 Ngnix 进行的二次开发,那么相较于 Ngnix,都解决了哪些主要问题?

叔度:Tengine 主要解决了如下问题:

(1) upstream 功能加强: 一致性 Hash,会话保持,后端主动健康检查,动态 upstream 修改;

(2) 更精细监控手段: 基于域名粒度数据统计,upstream 状态监控;

(3) 页面优化: CSS/JS/HTML 内容组合,HTML 内容缩减,footer 模块;

(4) 请求 body 过滤功能,body 流式上传;

(5) 模块动态加载框架;

(6) proc 模块框架: 基于此开发独立进程;

(7) 流控: 基于 CPU/Mem 等的进程保护模块 sysguard,原生请求限流模块加强;

(8) 其他许多核心改动如 reuseport、syslog 日志支持等。

InfoQ:Tengine 开源 5 周年之际,Tengine 2.2.0 新版本发布,这是继上次 Tengine 2.1.1 版本发布已经过去了一年多的时间,有人说阿里对 Tengine 已经不再重点维护,对此您怎么看?

叔度: Tengine 项目始终是阿里重点维护的开源项目,我们内部一直在对 Tengine 做维护和不断的改进。但是由于最近 1 年内部工作较多,精力有限所以没有做版本的发布。实际上最近一年 Tengine 在 GitHub 上的 commit 记录从未间断过,这也是最近发布 Tengine 2.2.0 的一个基础。还有就是我们最近又有很多新同学加入,后续版本迭代会恢复正常,希望能给大家带来更多的惊喜。

InfoQ:新发布的版本,都给大家带来了哪些新的功能及特性?如何有效利用 Tengine 源码进行深入学习?

叔度: 新特性主要包括:

debug_pool 模块,可以查看 Tengine/Nginx 内部内存分布 (基于 Nginx 的内存池轻量改造),可以帮助开发同学做内存优化和快速定位内存泄露。

如果想有效学习 Tengine 源码,建议查阅

官方文档了解大体功能,然后再结合代码阅读,或者查看当时的 pull request 提交记录。

InfoQ:请您谈一下这五年来维护开源项目的心得以及您对开源的一些想法。请您阐述下 Tengine 的下一步计划及未来的发展方向?

叔度:维护开源是一件有意义的事情,当基于真实需求开发出新的功能,开放出去不但能提高项目自身的完善度,同时也会帮助到其他有使用需求的人,也能够更好地促进大家对于开源的支持及参与。不仅如此,能够编写一份完善的文档,能够及时解答使用者的困惑,能够对反馈的信息及时收纳和处理,对开源项目的进一步发展都起着非常重要的作用。

下一步,我们希望能够将内部的一些通用的功能和模块整理并合入 Tengine 中。比如最近会先将 HTTP 请求流量拷贝模块和 HTTP 正向代理模块先整合进主干。另外还有各种丰富的调试优化改进以及集群监控管理功能,这些都将会逐步引入。不仅如此,我们还将积极跟进 Nginx 官方版本,尽快将 Tengine 版本与 Nginx 最新版本对齐,促进 Tengine 更好地发展,进一步扩大用户的使用范围。

2016-12-26 19:244605

评论

发布
暂无评论
发现更多内容

天翼云多活容灾服务项目入选“2025年度央国企云容灾领航者典型案例”!

天翼云开发者社区

安全 容灾

数字样机:改写卫星物联网的研制范式

DevOps和数字孪生

观测云产品更新 | 监控、事件中心、快照、查看器、基础设施等

观测云

产品迭代

UI设计变量系统详解!从0到1搭建可复用的多主题组件库

职场工具箱

产品设计 变量 组件库 ui设计 UI组件库

挑战设计:为2022年信息安全挑战赛打造CalDAV协议漏洞利用关卡

qife122

CTF挑战设计 反序列化漏洞

flinkcdc中checkpoint不成功问题排查

天翼云开发者社区

大数据

优哩哩模式合法吗?为何众多平台都如此钟爱全托管模式

新消费日报

智慧安全,数治风险:灯塔低代码平台赋能烟草行业安全管理体系

中烟创新

从娃哈哈看传统企业转型:宗馥莉 700 亿营收的产品战略有哪些「可复用模型」?

IPD产品研发管理

产品 产品经理 商业

重磅发布《央国企数智化转型发展报告(2025)》

信通院IOMM数字化转型团队

数字化转型 数智化转型 央国企数智化转型 央国企数字化转型

运维提效指南:如何通过轻帆云 AI 工单系统实现效率+60%跃迁

云智慧AIOps社区

运维 AIOPS ITSM 智能运维

MyEMS能源管理系统后台配置-租户管理

开源能源管理系统

开源 能源管理系统

转转千万级用户量消息推送系统的架构演进之路

JackJiang

网络编程 即时通讯 IM

网传“光刻工厂”真相揭晓,让我们用CST电磁仿真软件的方式打开它

思茂信息

cst CST软件 CST Studio Suite

底层的告警,上层业务应该收吗?

巴辉特

监控告警

非凸底仓增强算法上线广发证券,重塑个人投资者智能交易体验

非凸科技

AI Agent 的制胜之道:上下文工程深度解析

十三Tech

TinyEngine 2.7版本正式发布:开启低代码新范式!注册表功能重大更新!

OpenTiny社区

开源 前端 低代码 OpenTiny TinyEngine

最常见的五种舆情危机类型及应对策略

沃观Wovision

出海企业 海外舆情监控 海外舆情 沃观Wovision 舆情监测系统

Web前端入门:JavaScript cookie 的读写操作

电子尖叫食人鱼

JavaScript 前端 Web

2025 AI主战场,连锁门店“变形记”

脑极体

AI

Solo:基于 zkHE 的身份验证协议,构建 Web3 可信匿名身份层

股市老人

火山引擎 EIC 解析:构建以 KVCache 为中心的推理新基建

火山引擎开发者社区

火山引擎

火山引擎 MCP 安全架构与实践

火山引擎开发者社区

园区数字化管理系统(源码+文档+讲解+演示)

深圳亥时科技

MyEMS能源管理系统后台配置-门店管理

开源能源管理系统

开源能源管理系统

Post-Training on PAI (5): PAI-EasyDistill, PAI 自研大模型蒸馏框架

阿里云大数据AI技术

人工智能 大数据 开源 大模型 大模型蒸馏

海外舆情监测正在从“危机管控”走向“品牌策略核心”

沃观Wovision

品牌重塑 舆情监控 海外舆情监控 沃观Wovision 舆情监测系统

腾讯内部同款!iOA基础版免费领,中小企业强韧防线即刻拥有!

六月的雨在InfoQ

腾讯iOA 腾讯iOA场景体验官

离线数仓优化简述

天翼云开发者社区

大数据 离线数仓

TRAE 自定义模型服务商新增 Kimi,国际版现已支持超级模型 Grok-4(Beta)

火山引擎开发者社区

Tengine 开源5周年:不忘初心 继续前行_语言 & 开发_大冰_InfoQ精选文章