凌晨四点。马驹桥工业园。
信付通那间充满了霉味和陈旧烟味的办公室里,死一般的寂静被打破了。
“我不干。”
谢宇把那个写着“世界烂透了”的便签条揉成一团,扔进垃圾桶。
他重新戴上那个破旧的头戴式耳机,把卫衣的帽子往头上一扣,“我有病才跟你干,你知道这是什么工程量吗?”
他指着屏幕上那堆乱码一样的旧代码。
“这套收单系统是五年前用Java写的,架构老得像是在用算盘算微积分,你要我想办法让它去承接微光那几千万级的用户并发?这就好比你要给一辆老头乐装上火箭推进器。”
谢宇翻了个白眼,转身去拔主机电源,“会炸的,连人带车,炸得渣都不剩。”
“如果不干,你就要去坐牢。”
林彻靠在满是灰尘的档案柜旁,手里拿着那本刚签好的支票簿,语气平淡得像是在读说明书,“这家公司的法人刚刚变更成了我的名字,但技术负责人还是你,如果明天微光的资金链断了,引发金融系统性风险,作为核心技术人员,你觉得网警是先抓我,还是先抓你这个写代码的?”
谢宇拔电源的手僵在半空。
他回过头,不可置信地看着这个穿着昂贵西装的男人:“你……你这是绑架!”
“这是合伙。”
林彻走过去,一把扯下他的耳机,扔在桌上。
“而且,谁说我们要用这套破系统了?”
林彻从口袋里掏出一个U盘,拍在谢宇面前。
那是微光的核心接口文档。
“我们要做的,不是修补这辆‘老头乐’,而是把它的‘牌照’拆下来,焊在微光的‘火箭’上。”
“我要你重写底层网关,抛弃银联的旧通道,直接接入‘网联’。”
听到“网联”两个字,谢宇原本浑浊的眼神突然闪烁了一下。
对于搞支付的程序员来说,那是一个传说中的战场。
国家级金融基础设施,号称要承载全中国所有非银行支付机构的流量,并发量级是“亿”级别的。
“网联……”谢宇喃喃自语,喉结滚动了一下,“但是网联的接口协议极其复杂,而且对延迟要求是毫秒级的,就凭这几台破服务器?”
“服务器我已经让人从微光总部搬过来了,正在路上。”
林彻盯着他的眼睛,像是一个魔鬼在兜售禁果,“硬件管够,红牛管够,钱管够,我就问你一句——敢不敢在48小时内,在四大行的眼皮子底下,挖一条通往央行的地下隧道?”
谢宇看着林彻,又看了看那个U盘。
他那双常年被显示器辐射照得惨白的脸上,慢慢浮现出一抹病态的潮红。
那是一种疯子遇到了同类的兴奋。
“妈的。”
谢宇一把抓过U盘,插进电脑,手指把键盘敲得劈啪作响,“把空调开到最低!给我拿一箱红牛来!要是敢断电,老子杀了你!”
……
倒计时:40小时。
十几台顶配的刀片服务器被连夜运到了这个破败的小楼里,堆在走廊和厕所门口,因为机房实在塞不下了。
临时搭建的散热系统就是几台工业风扇,对着机柜狂吹。
“嗡嗡嗡——”
巨大的风噪让人耳膜发胀。
谢宇盘腿坐在转椅上,双手像是在弹奏一首死亡金属乐。
机械键盘的敲击声密集得连成一条线,几乎听不出间隔。
他已经进入了“工作”的状态。
李文博带着几个从总部赶来的核心技术骨干,此时竟然只能给这个邋遢的年轻人打下手。
“报文格式不对!网联的8583报文域定义和银联的不一样!”谢宇头也不回地吼道,“第48域要重新封装!把那个该死的各种特殊字符都给我转义了!”
“可是文档上说……”一个微光的高级架构师试图辩解。
“文档是给人看的,代码是给机器跑的!”谢宇抓起一罐红牛,仰头灌下去,易拉罐被捏扁扔在身后,那里已经堆成了一座铝制的小山,“按我说的改!不想死就快点!”
林彻坐在角落的一张破沙发上,腿上放着笔记本电脑,正在监控资金池的流失速度。
屏幕右下角的倒计时像一把悬在头顶的达摩克利斯之剑。
39:15:22
资金消耗:12亿。
这不仅仅是写代码,这是在烧钱取暖。
倒计时:24小时。
此时已经是次日深夜。
谢宇的眼睛里布满了血丝,红得吓人。
他的嘴唇干裂,起了一层白皮。
“内核重编译失败!”
屏幕上弹出一大片红色的报错信息。
“操!”
谢宇狠狠地砸了一下键盘,键帽飞出去好几个。
他抓着头发,发出野兽般的低吼,“内存泄漏……在哪里?到底在哪里?!”
李文博在一旁急得满头大汗:“要不先休息一下?你已经连续敲了20个小时了,脑子会木的。”
“休息个屁!”谢宇猛地转过头,眼神狰狞,“还有一半的路由表没写完!现在停下来,前面的逻辑全得乱!给我烟!快点!”
林彻走过来,递给他一支烟,并帮他点上。
“别急。”林彻的手很稳,火苗没有一丝晃动,“你在创造历史。历史是不会因为一个内存泄漏就停下的。”
谢宇深吸了一口烟,尼古丁的刺激让他颤抖的手指稍微平复了一些。
他盯着屏幕上那几万行代码,突然眼睛一亮。
“找到了……是指针越界。”
他扔掉烟头,重新扑向键盘,“我就知道是你这孙子!给我死!”
倒计时:5小时。
最黑暗的时刻。
所有人都在体能和精神的极限边缘徘徊。
李文博已经靠在墙角睡着了,手里还抱着笔记本。
只有谢宇还在敲。
他的速度慢了下来,但每一次敲击都更加沉重。
“林总……”谢宇的声音嘶哑得几乎听不清,“最后一公里了,我们要开始做全链路压力测试。如果扛不住,之前的努力全白费。”
林彻站起身,走到那一排排轰鸣的服务器前。
“开始。”
随着回车键按下。
模拟的千万级并发流量瞬间涌入这个新生的系统。
“CPU占用率 80%……”
“90%……”
“98%!”
所有的风扇都在疯狂咆哮,机房里的温度瞬间飙升,热浪扑面而来。
“警报!数据库连接池满载!”
“网关延迟飙升到500mS!”
谢宇的十根手指在键盘上化作残影,他在实时调整参数,像是在暴风雨中操纵一艘即将散架的帆船。
“给我顶住!!”他嘶吼着,“谁他妈敢崩,老子就把谁拆了当废铁卖!”
那是一种近乎悲壮的疯狂。
倒计时:15分钟。
所有的测试通过。
但最关键的一步来了——实网切换。
要把微光支付的庞大流量,从四大行的通道,瞬间切换到这个刚刚搭建好的、通往央行网联的“独木桥”上。
一旦失败,数据丢失,微光当场死亡。
“李文博,醒醒!”
林彻一脚踢在李文博的鞋底。
李文博猛地惊醒,擦了把口水,茫然地看着四周。
“准备切换。”
林彻走到主控台前。
屏幕上,左边是显示着“403 FOrbidden”的银行通道,右边是一片黑暗的网联通道。
“谢宇,准备好了吗?”
谢宇瘫在椅子上,双手垂在身体两侧,像是个刚刚跑完马拉松的废人。
但他那双眼睛,却亮得惊人。
“只要网联那边不拒收,我的代码就没问题。”谢宇咧开嘴,露出一排被烟熏黄的牙齿,“林总,按吧,送那帮银行的大爷们上路。”
林彻伸出手指,悬在那个红色的【SWitCh】按钮上方。
这一指下去,要么是地狱,要么是新世界。
所有的声音仿佛都消失了。只剩下墙上挂钟的滴答声。
00:14:59
林彻没有犹豫,重重地按了下去。
“咔哒。”
屏幕上的画面凝固了一秒。
这一秒,长得像是一个世纪。
绿色的数据流像瀑布一样倾泻而下,瞬间填满了整个屏幕。
“通了!!!”
李文博发出一声尖叫,整个人跳了起来,抱住旁边的服务器机柜狂亲。
“我们连上网联了!我们绕过银行了!交易成功率……100%!”
欢呼声在狭窄的办公室里炸开。
几个技术骨干抱头痛哭,那是劫后余生的宣泄。
谢宇看着那满屏的绿色,嘴角抽搐了几下,想笑,却突然两眼一翻,直挺挺地从椅子上滑了下去。
“谢宇!”
林彻眼疾手快,一把捞住他。
这小子已经彻底虚脱晕过去了,但手里还死死攥着那半罐红牛。
林彻把他放在那张破沙发上,给他盖上自己的大衣。
然后,林彻转过身,看着大屏幕。
那里,红色的倒计时终于停止了跳动,定格在 00:09:23。
而在倒计时的旁边,是一个全新的、绿色的、昂扬向上的交易曲线。
它不再受制于任何一家银行,它直接连通了国家金融的心脏。
林彻从口袋里掏出手机。
信号满格。
他拨通了那个熟悉的号码——那个在不久前把他拒之门外的号码。
电话响了两声就接通了。
“喂?”刘国强的声音带着一丝刚睡醒的慵懒,或许还有等待胜利消息的惬意,“哪位?”
林彻看着窗外渐渐泛起的鱼肚白。
天亮了。
“刘行长,早啊。”
林彻的声音很轻,却带着一种令人战栗的愉悦。
“我是林彻,特意打电话来告诉您一声,微光的系统维护结束了。”
“另外,通知您一下,从今天起,微光支付不再需要贵行的接口了。”
“以后,咱们……网联见。”