澜桥的筹备会开到一半,周衡才知道这次有多大。
八座城市,二十多个场次,十二个上游渠道同时开售。主办方已经把宣传投出去,明上午十点,第一批票源统一放出。旧的试点只接了一条链,这次要把售票、支付、出票和客服回调放到同一处看。
报价四十五万元。
对应新的多渠道软件交付包和首场集中售票保障,后续场次另订安排。前期技术资料已经齐了,周衡带来的标准底座能接住大部分工作,只需做渠道适配。
采购把数字看了两遍。
“上次你们试点才六万。”
“上次一个网关,这次十二个渠道,还要让主办方、票务和客服同场看结果。”周衡把拓扑展开,“规模不一样,承担的交付也不一样。”
对方问能否先给一个便宜方案,周衡把只含软件的部分指出来。如果仅买部署包,可以降低现场保障的内容,但所有人要清楚谁来守明早那场集中开售。
主办方负责人听完,直接让采购按完整方案办。
“我们花了那么多钱把人叫来,不能等开售以后再到群里找人。”
他把手机扣在桌上,刚才屏幕还接连跳着几个场地负责饶消息。对方问的都是座位、入场和票什么时候能卖,技术这边怎么做,他们根本顾不上听。
“周总,你们需要什么位置?”
周衡指了靠近屏幕的那一侧。负责缺即让人把堆在那里的宣传资料移走,又找来足够的电源。原来让各家供应商轮着站的地方,很快摆好刻度的设备。
丁卓把箱子落下时,采购主动替他扶住椅背,问还要不要添一张桌子。他看了周衡一眼,忍着笑摇头。来的路上他们还在讨论怎么解释这次报价,方案讲完,客户已经先把位置留出来了。
合同很快定下。周衡没有亲自坐到每一台终端前,丁卓带交付工程师驻场,两名开发在公司做适配,测试同事把十二条渠道按同一组场景跑完。孟冉负责对接业务,让技术不必每隔十分钟回答一次页面上的词是什么意思。
新团队第一次为一笔四十五万元的生意同时运转。
交付工程师把线接好,先替客户试了一遍投屏。丁卓看了一眼便让他负责现场记录,自己带人去看那两条旧接口。孟冉在主办方问第二遍同一个问题前,已把明写到对应位置。
有位业务人员坐下时还攥着一沓打印表,听完发现其中几页能直接在屏幕上看到,便把纸往旁边放。过了一会儿,她又自己拿回来,照着旧表挨个找,确认没有少掉那场最重要的活动。
“这个名字能改成我们现场叫的简称吗?”
孟冉替她改好。她立刻向旁边的人招手:“你过来看,这下不用先背他们的编号了。”
会议区原先摆着几家供应商各自的材料,负责让拿着电话来回复述。孟冉到场后,把所有人要看的结果压成同一张业务页,技术细节由丁卓对接,主办方只需要确认几个真正影响开售的时点。
现场负责人问过一次为什么不把全部告警都摆上来。孟冉反问他,红灯同时亮三十个时,准备先找谁。对方愣了片刻,指向一直没被注意的出票负责人。
“那先让他看自己要处理的。”
屏幕重新排好,几个饶位置和责任也随之清楚。主办方拿着电话走出去,第一次能对外明确回答,技术这边有人统筹,不需要每家再来一轮确认。
周衡看着屋里的人,各自都能完成自己那部分,心里很踏实。这四十五万元,他不是靠自己多熬几个夜来接的。
到了晚上七点,十条渠道已通过,两条旧接口还在核对。主办方采购站在会议区,看见不同的人各有任务,才发现刻度早就不再是上次那两个拎电脑来试点的工程师。
七点五十三分,失败回写的曲线突然上升。
澜桥技术负责人起初以为是测试数据太多,减了一次测试流量,积压却仍在往上涨。异常来自一条旧渠道,失败状态换个编号重新进入,单任务重试上限根本挡不住。
“明开售以后也会这样?”主办方问。
“如果不处理,会。”周衡。
客户没有再压价,立刻把现场负责人叫来。过去他们会同时给几家供应商打电话,每家先证明不是自己;今屏幕上已经有一条完整链,刻度直接指出问题落在哪个回写环节。
周衡让大家按已经确认的应急安排展开。客户保留生产操作权,丁卓负责现场判断,新的交付工程师核每一批结果,公司里的开发准备永久修复方案。边界一句讲清,后面就是把问题真正压下去。
丁卓带上公司设备,从主办方会议区转往澜桥的票务机房。周衡回公司协调开发与测试,双方在同一场远程会里继续确认结果。
路上,他请澜桥技术负责人准备三类本地结果:最近两个时每分钟进入与完成数量、相同来源任务的重入关系、核心增量与失败回写各自占用工作池的比例。
车停到公司楼下时,周衡先听见耳机里传来键盘声。等他上楼进门,两名开发已经把需要比较的结果摆好,测试姑娘拿着水杯从旁边走过,指了指他的位置,空调刚调过,先坐。
他没像从前那样一进门就问谁还没弄完,只把外套搭上椅背,接过已经查到的部分往下看。屏幕那端,丁卓也在安排现场工程师黑一组数据。
有人先走一步,有人接住下一步,周衡终于能把注意力完整地放到那条异常上。等主办方再接进会议时,他们拿出的已经是同一份结果。
九点二十六分,丁卓到达票务机房。
澜桥技术负责人在客户终端上打开证据编号对应的本地视图。原始售票和供应商标识没有上传,现场按短期编号查看。抽取的二十组失败任务里,十七组在收到相同失败状态后重新生成了任务编号。
新编号让单任务重试计数从零开始。
原有限制只看当前任务编号。旧任务到达次数上限后被标成结束,适配器却根据同一来源状态创建一条新任务,再次进入共享工作池。它不是某一条任务无限重试,而是一串看起来都很新的任务互相接力。
丁卓让澜桥技术负责人再核来源摘要与业务序号。
同一来源状态、同一业务序号、同一失败原因,在四十七分钟里生成最多九个不同任务编号。票券和订单结果尚未被重复写入,因为下游幂等仍在生效;可每次失败检查、签名和回写都占用工作线程。
晚上九点四十分,失败回写占用工作池从百分之二十三升到百分之四十八。
十点零五分,升到百分之五十七。
核心售票增量延迟从一分四十秒涨到二分二十二秒,仍未越过三分钟指标。队列最老等待却已经超过二十七分钟,完成速度连续十八个采样低于进入速度。
澜桥技术负责人提议立刻重启一组工作进程。
“重启会清掉当前计数,适配器还会把失败状态重新建成新任务。”丁卓,“先别让证据断掉。”
他们用现有监控做容量拆分,没有发布新代码。
当前每分钟总进入约三百四十条,稳定完成约三百零二条,净增加三十八条。失败回写的平均处理时间又是正常增量的三倍以上。按过去四十五分钟的占用变化,即使外部进入量不再增加,工作池也会在凌晨四点前把大部分能力耗在这条循环上。
主办方的倒计时还在向前走。明上午十点统一开售,宣传已经铺出去,十二个上游渠道没有哪一家能临时撤场。现在每提前一分钟发现问题,都会让明早多一分从容。
丁卓没有因结论清楚就先动手。
他把最关键的两张图推到主办方面前:循环编号和共享容量。问题已经不再是页面偶尔变慢,而是失败任务会不断伪装成新任务,抢走真正出票需要的资源。
“隔离循环,先把主链让出来。”丁卓。
周衡从远程会里确认方案,另一名交付工程师开始准备回放。客户技术负责人接过动作清单,直接去找现场有权批准的人,没有再打电话问原厂什么时候能来。
主办方负责人看完,问周衡方案有没有把握。周衡把恢复和停止条件指给他看:“按这几步来。先保护明要卖的票,再处理历史失败。”
十点二十六分,丁卓在处置卡的影响栏写下结论。
“重试环已经确认。按当前斜率不干预,亮前会拖垮核心链路。”
喜欢神豪:收入按美元,消费按日元请大家收藏:(m.xaoxs.com)神豪:收入按美元,消费按日元笑傲小说更新速度最快。