在职期间企业内项目:
1、组件化游戏活动平台
介绍:由于游戏活动的业务逻辑有很强的分类性(例如签到-抽奖,签到-兑换,充值-兑换),同分类内的逻辑高度近似。因此我在职期间设计了组件化游戏活动平台。该平台首先通过将游戏活动的功能进行更细粒度的切分,形成组件。运营人员可在管理台根据业务需求对组件进行配置编排,平台前台根据配置,组织组件形成具体的业务活动。通过以上策略,减少组内对通用活动逻辑的单独开发负担。
2、交易电子回单导致的OOM问题定位解决
介绍:在微众期间,负责项目曾在线上出现过OOM问题。经定位,发现同一时间多个请求打到同一台服务器,大量交易依据模版生成为pdf。由于这个过程本身就比较耗费内存,且代码写的比较粗糙,外加上没有对容量上限进行限制,因此出现了内存泄漏问题。
解决方案:首先将该业务放入线程池内去运行,通过控制工作线程数量,来约束同一台机器上的最大内存消耗,让消耗可预估。其次,将原本的全量生成改为分页生成。回单通过远程接口请求回数据,塞入缓冲,渲染层发现缓冲中数据足够渲染一页则取出并渲染,随后释放本页数据。通过这样的手段,让单个业务请求从全量(最大内存消耗不可预估)到分页(最大内存消耗就是一页的内存消耗,完全可控),并且通过缓冲解除了远程接口返回数据量和渲染层单页所需数据量之间的耦合关系。