演讲: Lua 在 Nginx 中的应用
Nginx 是一款高性能的开源网络服务器和负载均衡器,而 Lua 是一种小巧而高效的动态语言,这在几年前激发我们 Lua 的实现整合进了Nginx 服务器,催生出了 ngx_lua 这个 NGINX 扩展模块。这种结合显著提高了 Nginx 配置上的灵活性,大大扩展了Nginx 的应用范围,甚至有生产用户基于 Nginx 本身构建比较完整的 Web 应用。我们的 ngx_lua 模块已然成为 Nginx世界最流行的模块之一。
这个分享中,我会介绍:
1. 我们当初为什么选择 Lua,以及我们具体是如何把 Lua 实现整合进 Nginx 的;
2. 我们是如何利用 Lua 协程,避免非阻塞 IO 编程中编写大量嵌套回调函数的痛苦;
3. LuaJIT 的实现架构以及我们是如何充分利用它的性能优势的;
4. 根据我们这几年的实践总结出的那些在高性能 Web 服务器和 Web 应用中常见的性能瓶颈和应对方法;
5. Nginx + Lua 在 CloudFlare、Adobe、CNN、淘宝网、网易、去哪儿网等国内外公司的基本应用模式。
最后,我会展示一系列基于 SystemTap的高级在线调试技术和工具。如何在不停在线服务的情况下,按需检查整个软件栈内部的行为细节,实时在线追踪 Lua 解释器/编译器和 Nginx服务器中的性能瓶颈及其他问题。顺带着我会讨论那些针对 Lua 和 Nginx 的基于 GDB 的高级调试工具的设计与实现。
演讲专题
Covering innovative topics
4月23日,星期四
-
敏捷之后,是什么
敏捷实践在大型组织中现在已经有哪些应用了呢?从小型团队中兴起的敏捷,到了大型组织中如何才能够取得成功呢?
-
知名移动案例分析
移动互联网高速发展,我们每天花在移动设备上的时间越来越多。怎么做出一款大众喜爱的应用,从众多 App 中脱颖而出?听听那些耳熟能详的 App 背后的成长故事,也许能找到答案。
-
新时代的安全
高危漏洞频发,隐私泄露,普通开发者该如何避免和防范;开发者如何从逻辑上避免风险?
-
互联网金融背后的技术架构
何为互联网金融?是互联网公司做金融业务,还是金融公司使用“云计算“,”大数据”等“时髦”技术?这些说法都不足以描述互联网金融的本质。
-
微服务架构
过去的一年,微服务架构在社区中讨论广泛。微服务在企业中的实践现状如何?本专题将关注它对企业计算架构的影响,以及一线互联网公司的团队是如何应对实践中的问题与挑战的。
-
永不止步的前端
过去一两年,在前端迅猛发展的同时,深深感觉到前端才刚刚开始。前端工程师正在演化成产品工程师,虽有迷雾,但路就在脚下,永不停息。
-
云计算高可用架构设计与实践
以分布式系统为基础的云平台需要对CAP原则做很好的平衡,当上层业务需要高可用支撑时,就需要对中间服务层及底层基础架构、操作系统层实现高可用,如何低成本的实现高可用就成为云平台设计的难点。本专题将以透过余额宝等金融服务的高可用服务,揭示底层的数据平台、虚拟化平台、跨数据中心的高可用架构。
4月24日,星期五
-
可扩展、高可用架构设计
本专题主要讨论大型复杂的互联网的架构设计、代码与运维体系。
-
新兴大数据处理技术与工具
Hadoop之后,又有哪些值得关注的大数据处理工具?
-
自动化运维
运维领域经过十多年发展,有什么海量和自动化理论实践供我们借鉴?云和开源运维管理系统的快速发展给我们的运维模式带来什么样的改变?如何在费时的质量问题分析时找到高效和巧妙的方法?
-
云计算平台构建与应用
云计算方兴未艾,各种技术与服务层出不穷,各种技术如何取舍?是搭建自己的云平台还是使用公有云服务?如何多快好省建设云平台,又如何在多个公有云服务中快速灵活迁移呢?了解云计算最新技术动态,行业最新内幕,应用最佳实践,就来云计算平台构建与应用专场。
-
移动开发最佳实践
移动互联网带来了新的一波创业潮,业务的飞速发展需要技术团队的良好支撑。面临不同时期不同量级的业务时,技术选型和策略可能会完全不同。让我们来看看业内的一些团队是怎么做的。
-
编程语言实战
各种不同的编程语言优劣一直是大家热议的话题,这个专题不是为了引起大家的争论,而是展示不同的编程语言在特定的场景解决了哪些问题,以实际的效果来说话,将优劣的问题留给大家来思考。
-
云计算与大数据应用选型
无论是云还是大数据,找到合适的解决方案、做好数据选型都是十分关键的。本专题将邀请来自主流云及大数据服务商的技术工程师,旨在帮助企业和个人充分了解主流解决方案的优势与特点,从而更好的进行技术选型。
-
亚马逊AWS技术应用实践
作为全球最成功的云计算服务商,亚马逊AWS在技术、功能和生态系统建设方面都有非常丰富的积累与经验。本专题将邀请亚马逊AWS的架构师及客户,分享在亚马逊AWS构建服务的实践,涉及混合云、大数据、移动应用和运维。
4月25日,星期六
-
团队建设
关注中小型团队如何走向成功。
-
服务质量
O2O潮起,“连接人与服务”成为焦点。我们邀请到一些优秀的服务平台或服务提供商,分享他们是如何针对O2O服务具有的地域性、时效性、闭环性、碎片化等特点,做好服务质量保证的。
-
挑战全栈开发
全栈是最近一两年里才流行起来的开发概念,代表一种新的工作模式。全栈工程师是否需要精通整个技术栈的所有技术,是精通单一领域,还是全面发展?全栈工程师在工作中要扮演什么不同的角色,工作过程究竟有何不同?
-
思考开源
开源的力量有目共睹,但如何应用开源、如何参与开源软件开发、如何融入和回馈开源社区、如何开源自己的软件等问题,都是很多公司的工程师非常关心的问题。这些问题的答案是什么呢?
-
基于大数据的机器学习和数据挖掘
该专题关注于当今最为前沿的机器学习技术, 包括深度学习, 大数据,以及个性化数据挖掘等领域。 我们将邀请该领域的资深专家, 详细介绍这些前沿技术给互联网产业带来的革命性的变化。
-
技术创业
在中国,技术创业是个艺术活儿——Google技术牛创业实战干货分享。
-
移动开发平台与工具应用实践
一款移动应用要经历从开发、测试、语音IM集成到运营监控的全生命周期,因此如何以低成本、快速的完成以上阶段就成为应用成败的关键。利用第三方开发平台或工具,开发者将以更低的成本获得全生命周期的技术支持,让开发者更专注应用的研发工作。本专场将主要分享移动应用开发过程中可使用的各种平台与工具的特点与应用实践,了解移动IM、IP电话、推送、广告系统背后的技术难点,以及详细解析第三方组件是如何解决用户数据管理、复杂网络、大并发等问题的。