加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

OpenResty在腾讯游戏营销技术中的应用和实践

发布时间:2019-04-11 13:12:40 所属栏目:建站 来源:顾小平
导读:各人上午好,我是来自腾讯的Shawn顾小平。先做一个简朴的自我先容。我在插手到腾讯之前一向在通信行业内里从事通讯软件的研发事变,包罗在华为,尚有UT斯达康。 2012年10月份我插手到腾讯,此刻在腾讯互动娱乐奇迹群认真部门的营销技能相干的事变。我打仗

其它 JSON 操纵确实会耗损我们许多 CPU 的机能,我们一些同窗也常常在 debug 内里去打印,想把这个 debug 日记内里去打印很大都据布局内里的内容(用json.encode来打印),然后放到天生情形上去,固然这个 debug 操纵是不会执行,可是这个函数,JSON encode操纵是会执行的,这样的话会导致出产情形极大的机能消费,等等这样相同的环境还长短常多的,以是我们在现实进程傍边照旧要去寄望这样一些欠好的编码的风俗。

正则表达式匹配的优化

第三个就是正则表达式匹配的优化。各人知道正则表达式匹配都是由正则表达式引擎来做的,常用的正则表达式引擎就是PCRE,于是我们就去思量有没有越发高机能的正则表达式匹配的引擎呢?我们也去做了一些调研,正则表达式应用最多的规模着实是在安详规模内里,安详规模内里有这样的的IPS、IDS 这样的一些安详检测和防止性的产物内里会大量地行使正则表达式匹配的操纵,它之前也是用 PCRE 来做正则表达式的匹配。其后就是在这两年的时辰,都同统统换到了英特尔开源的 Hyperscan 这样的正则表达式引擎来了。

为什么它会去做这样的改变呢?Hyperscan 正则表达式引擎比这个PCRE有哪些上风呢?说明后发明它有这么几个方面的纷歧样可能说利益。

  • 第一个就是它不只仅是支持块模式,还支持流模式。所谓的流模式就是跨差异的收集包去做一个匹配,这个对安详产物长短常有效的。
  • 第二个就是它一次可以编译多个法则,各人知道正则表达式最后城市编译成状态机到内部去做匹配的操纵。
  • 第三个就是一个输入多个法则只匹配1次,它可以并行匹配多个法则,这个是很锋利的。它的机能也许会很高,以是我们接下来我们就去做了这样一个验证,就是把30万条http get 哀求(包罗 URL),写到一个文本内里去。然后每个参数都做一个正则表达式的匹配,用 PCRE 的代码和 Hyperscan 的代码去读这个文件,一条条读,然后匹配每一个法则。发明 Hyperscan 匹配正则表达式以是耗费的时刻确实比PCRE所花的时刻低许多,或许只有后者的30%阁下的样子。以是接下来我们就很是坚决地把它引入到我们的 API 网关内里来,用火焰图继承验证, CPU 的耗损,从之前的10%+低落到7%只有了。

以是接下来是不是尚有可以优化的空间?虽然有,就是开启它的并性匹配度法则的操纵,这个 Hyperscan 内里也是提供了回调,然后我们只必要把每个法则配置一个符号位,然后去匹配完之后搜查这个符号位往后就OK了,就可以做获得了。

其它尚有一件工作是什么呢?就是正则表达式法则编写难度的题目,我们不能要求营业开拓同窗每次都要去编写正则表达式,这个对他们来说也不必然编写得正确,也有一些进修的本钱在内里。以是我们就去看了一下大部门的参数照旧较量相同的,以是就把这些参数的正则表达式做一些归纳,然后用一些笔墨性的描写,做了一个模板,营业职员就可以直接去选择这些模板就OK了,也很好的办理了这个题目。

安详性方面的优化

第四个方面的优化就是安详性方面的优化。安详性方面的优化要做的一件工作就是,它必要把我们这个 API 网关的安详计策去和公司现有的一些安详的产物做团结。腾讯内部有这样的本身的安详产物,叫门神,以是我们在 http 哀求进来post read阶段就去和安详产物做一个交互,让它去过滤流量。它过滤的流量没有题目之后,再进入到我们的安详计策内里。虽然这个安详计策也相对会较量简朴,包罗有 API 白名单,设置到 API 的流量才可以进到内里来。然后尚有基于用户过滤的利害名单,尚有登录校验,支持腾讯的手Q、微信等的多种校验方法,也都把它集成进来了。

其它去做参数校验,参数校验则用前面提到的正则表达式做很是严酷的必选参数的校验。其它就是假如做了很是严酷的正则表达式匹配的话,SQL 防注入等等这样的题目也不会有。这个就是安详性方面的优化。

可维护性方面的优化

最后就是可维护性方面的优化,我们也做了两点:

  • 第一是添加了一些日记和统计的成果。譬喻,把 4xx/5xx 等一些错误日记独立出来,其它就是添加基于某个用户id后者哀求id的染色日记跟踪打印。
  • 第二个方面的优化不必然属于本日讲的内容内里的,就是我们也做了挪用链跟踪体系。API 网关在这个挪用链跟踪体系内里是作为出发点,它会去天生Trace id,以及建设挪用链的上下文,以及竣事挪用链,其它就是还可以节制挪用链跟踪的收罗的频率等。

那到这里就快速简朴先容了一下第一个应用案例,在易用性、可用性、机能,尚有安详性以及可维护性这五点,我们的一些思索和优化的进程。

OpenResty 在腾讯游戏、告白投放体系中的应用案例

接下来进入到第二部门,就是 OpenResty 在腾讯游戏、告白投放体系中的应用案例。照旧和之前的内容一样,我不会涉及到许多详细的 OpenResty 的技能的细节,首要是想跟各人分享一下案例,以及在这个案例内里一些优化的头脑。

这个案例相对会较量斗胆一点,由于或许腾讯游戏有好几个亿的营销用度城市通过这个体系投放出去。告白投放的情势有许多种,有包段告白位的、包段时刻段的、包段流量的,尚有平凡竞价的,尚有及时竞价的。本日我想跟各人分享的就是及时竞价的告白投放情势和我们 OpenResty 的一个团结,以及 OpenResty 在内里的优化。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读