不改代码也能全面 Serverless 化,阿里中间件如何破解这一难题?( 十 )
L2 的每个 SNAOSHOT 对应一个可运行的实例 , 例如预计一个应用需要最大启动100个实例 , 那么需要提前生成100个 SNAOSHOT , 每个 SNAOSHOT 对应一个运行实例 , 需要启动时 , 从远程磁盘加载这个 SNAPSHOT 。
此方案通过 L1 和 L2 的组合来达到加速应用启动的目的 , 在支持一定流量脉冲能力下 , 可以最大50ms内启动任意应用 , 平均在10ms内完成 。
方案二:应用热复制启动加速方案
L1 采用通过 fork 种子进程达到快速启动的效果 , 操作系统团队专门为此开发了 fork2 技术 , 与 Linux Native fork 的关键区别在于可以指定 PID 来 fork 一个进程 。
L2 的单个 SNAPSHOT 可以创建多个进程 , 一对多关系 。
两种自研方案的对比
-
方案一:不存在 UUID 问题 , 但是每种语言的 VM 要单独定制 , 成本效果相比方案二略差 。
-
方案二:会存在 UUID 问题 , 若开发者希望应用的每个实例启动时 , 都赋值一个 UUID 给一个静态变量 , 但通过 fork 会导致每个实例的这个静态变量都相同 , 这与开发者预期不符 。 方案二的优势是更易实现、和语言无关、成本效果更优 , 适合 FaaS、NBF 这类场景或者开发者自己定义的开发框架 , 能避免 UUID 的问题 。
推荐阅读
- csgo|炉石传说:骑士也能玩隐身?驴鸽隐身骑上线,明牌斩杀堪称折磨王
- 三国杀|Win 11也能运行安卓应用,流畅度秒杀模拟器,不信你来试试?
- 地下城与勇士|DNF:低成本获取神器装扮,日积月累也能攒齐一套
- s6|金铲铲之战s6测试服:海克斯强化有多爽?超肉坦克也能成为大杀器
- 国服|AG猫神晒出国服鲁班大师和太乙,盾山不ban也能国服,确实挺努力
- 原神|0氪大佬装备堪比神豪,默默积累也能对抗高玩!
- 蒙多|当《我的世界》知名主播投身永劫无间,米子山民也能大杀四方
- 新世界|《新世界》爆出恶性踢人Bug,直接聊天窗发代码
- 热血传奇|热血传奇:神装也能贬值,一次重大BUG“祈祷头盔”几乎人手一件
- 赤色要塞|玩经典游戏《赤色要塞》魔改版:吉普车也能用激光炮,童年梦想实现了