天才一秒记住【狂风中文网】地址:https://www.kfzw.net
两个方框之间画了一条线。
线的旁边写了四个字:“异步回调“。
然后他在下面的方框里画了一条虚线,把它分成了左右两半。
左边写:“规则引擎“。
右边写:“本地帐本“。
“本地帐本“三个字下面,他画了一个小箭头,指向上面的“央行帐本“,箭头旁边写了两个字:“最终一致“。
画完了,放下笔。
白板上只有这些东西。
两个方框,一条实线,一条虚线,三个箭头,不到二十个字。
跟左半边那密密麻麻的架构图比起来,像是两个世界的產物。
…………
实验室里安静了大概五秒。
老周站在他后面,盯著白板右半边看。
他的呼吸声变了,从刚才疲惫的均匀变成了不均匀的,像是在憋气。
“本地帐本……“他低声说。
林彻没说话。
“不用镜像同步,“老周的声音开始快了,“不是维护一份央行帐本的副本,是在逻辑层本地建一个独立的帐本。
本地帐本只记录可编程逻辑相关的状態,不记录完整的余额信息。
规则引擎执行的时候只查本地帐本,不查央行帐本。
执行完了再通过异步回调把结果告诉央行,央行帐本做最终確认。
“
他停了一下。
“310毫秒的镜像同步没了。
“
方远从椅子上站起来了。
“但是一致性呢?“方远说,“本地帐本和央行帐本之间如果不同步,双花问题怎么解决?“
老周没有看方远,他还在看白板。
“不需要实时一致,“老周说,语速越来越快,“最终一致就够了,本地帐本记录的是这笔钱正在被一个规则占用,不是这笔钱已经被扣了,占用状態锁定这笔钱,其他交易看到占用状態就排队,规则执行完了,回调通知央行,央行做最终扣款,如果回调失败了,占用状態自动释放,钱回到可用状態。
“
“最终一致……“方远在脑子里跑了一遍逻辑。
“双花问题被占用锁解决了,“老周说,“不需要镜像同步,不需要央行实时確认,本地帐本的占用锁就是防双花的机制,310毫秒没了,195毫秒的回调通信变成了后置环节,不在主链路上,不影响用户体感延迟。
“
他转过身看著林彻。
“18加22加65,105毫秒。
“
105毫秒。
远低於500毫秒的要求。
甚至比demo里的37毫秒只高了不到70毫秒,因为加上了清算確认的65毫秒。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!