手把手教你打造高性能路由、API 网关和游戏反外挂丨OpenResty × Open Talk 武汉站顺利落幕

百家 作者:又拍云 2019-05-14 10:42:02

5 月 11 日,由又拍云、OpenResty 社区主办的 OpenResty × Open Talk 全国巡回沙龙 | 武汉站顺利落幕,这是系列活动的第三站。OpenResty × Open Talk 全国巡回沙龙旨在促进 OpenResty 在技术圈的发展,增进 OpenResty 使用者的交流与学习。在武汉站活动现场,五位技术专家分享了自己专业的观点和经验,让参加活动的同学们受益匪浅。

众所周知,OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,越来越受到开发者的关注,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项,用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。目前,包括腾讯、京东、美团点评、又拍云、12306、360 等企业都在内部深度应用了 OpenResty。

OpenResty × Open Talk 全国巡回沙龙武汉站邀请了 OpenResty 社区、又拍云、斗鱼、马蜂窝、福禄科技等深度应用 OpenResty 的公司的相关技术专家、技术负责人,内容涵盖 OpenResty 实现高性能路由、upsteam 管理、API 网关、游戏反外挂以及实际业务场景下 OpenResty 应用等内容,为近百位现场观众和数千线上观众提供了一场技术盛宴。


 lua-resty-r3 高性能 OpenResty 路由实现

OpenResty 社区、OpenResty 软件基金会联合创始人王院生做了开场分享,他详细介绍了 lua-resty-r3 组件从调研、实现、测试到持续集成等步骤遇到的问题以及解决办法。

lua-resty-r3 是一个运行在 OpenResty 上的基于 Lua 编写高性能路由实现,通过在启动时构建前缀树,可以高效地根据路径找到指定调度器。院生提到在 Web 开发框架里,数据访问层、可视化都已经都比较好的实现方案,而路由目前还没有强大、高效的解决方案,这也是设计 lua-resty-r3 组件的初衷。院生详细介绍了 lua-resty-r3 组件开发过程中的项目目标、测试用例及框架、代码书写、单元测试、测试工具、创建里程碑等内容。


OpenResty 在马蜂窝的一些业务场景应用和探索 

马蜂窝基础平台技术专家李培,专注高并发、高可用的基础服务架构设计,“全沾”工程师,曾先后负责电商 App、机票、火车票等业务,推崇合适的开源技术帮助业务。李培在活动上介绍了马蜂窝的场景选型以及在 A/B Testing 和 IM 两个业务场景下对 OpenResty 的应用。

李培总结了马蜂窝采用 OpenResty 来做业务应用的六个特点:跨语言和平台、性能损耗小、健壮和高可用、在上游服务之前、轻量非阻塞以及数据有限集合。

李培介绍马蜂窝的 A/B Testing 采用了 OpenResty ,测试环境下结果显示使用 ABTest 响应时长不超过 2ms,随时间推移响应时长和吞吐没有明显变化;而即时通讯业务场景使用 OpenResty 取代原来后端服务,Lua 做前置标记,性能提升明显。


基于 OpenResty 的动态服务路由方案

又拍云首席布道师、运维总监邵海杨,资深系统运维架构师,DevOps 八荣八耻践行者,多年 CDN 行业架构设计、运维开发、团队管理经验,精通 Linux 系统及嵌入式系统,互联网高性能架构设计、CDN 加速、KVM 虚拟化及 OpenStack 云平台的研究。邵海杨在活动上介绍了又拍云基于 OpenResty 实现的动态服务路由方案,该方案是目前已经开源了动态负载均衡组件 Slardar : https://github.com/upyun/slardar 。

Slardar 是一个基于 Nginx,lua-nginx-module 和 stream-lua-nginx-module 的 HTTP 负载均衡器,用户可以通过它来更新上游列表并运行 lua 脚本而无需重新加载 Nginx。邵海杨提到 Slardar 的设计初衷主要是解决三个问题:怎么做无宕机时间的更新、怎样做自动扩容以及故障恢复、如何方便的对请求进行改写。


斗鱼 API 网关演进之路

斗鱼数据平台部资深工程师张壮壮,主要负责打点、API 网关、数据采集及后端服务架构建设,他详细介绍了斗鱼 API 网关演进,巧合的是斗鱼的 API 网关正是基于又拍云开源的 Slardar 项目升级改造的。

张壮壮提到斗鱼做 API 网关的主要是为了解决:怎样保证服务的无宕机更新部署、怎样保证服务的自动扩容及故障恢复。他详细介绍了斗鱼 API 网关从最初仅支持动态负载均衡,到如今支持服务发现、请求限流、OA 认证、AB 测试、灰度测试、流量复制、蓝绿发布、开发平台等功能,为核心服务遭受爆发流量冲击时提供了有效保护。


OpenResty 游戏反外挂应用

福禄科技服务端研发罗宇翔,喜欢折腾 php、lua、Nginx 等技能,目前负责公司游戏反外挂服务端业务。专注于后端高并发,高可用服务设计,对 OpenResty 应用到 Web 项目有较多经验。罗宇翔在活动上介绍了他们针对游戏外挂,导致的封号、盗号的解决方案。

罗宇翔介绍目前很多游戏开发商把精力放在游戏业务场景上,却忽略了安全模块,如防止外挂,防盗号等,福禄科技针对这种情况实现了反外挂产品:外挂规则库、用户游戏环境检查、TCP网络校验、特征码校验、 扫内存代码校验等。罗宇翔提到在服务端 WebSocket Server 模块应用 OpenResty ,用 WebSocket 协议做长连接,解决了开发效率、高并发等诸多痛点。


OpenResty × Open Talk 全国巡回沙龙武汉站上,几位具备丰富经验的讲师通过分享自身的经验,令现场和直播观众收获匪浅。

本次活动各位讲师的分享内容将陆续更新,请大家关注 Open Talk 官网(https://opentalk.upyun.com)或又拍云微信公众号(微信 ID:upaiyun)。

又拍云联合 OpenResty 中国社区,举办 OpenResty × Open Talk 全国巡回沙龙,2019 年将陆续在深圳、北京、武汉、上海、广州、杭州等地举行,邀请业内资深的技术专家,分享 OpenResty 实战经验,推动 OpenResty 开源项目的发展,促进互联网技术的交流。



快 来 找 又 小 拍




推 荐 阅 读


关于技术

聊聊 CDN 缓存与浏览器缓存

4K视频在线看,网速跟不上怎么办?

京东云罗玉杰:OpenResty 在直播场景中的应用

又拍云叶靖:OpenResty 在又拍云容器平台中的应用

新浪微博王辉:OpenResty 构建一站式应用网关实践


告 诉 大 家 你 “在 看” 这 篇 文 章  

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接