首先可以肯定是,“扣款延迟”这个问题其实是数据一致性的问题,就是保证数据一致性。比如前几天苹果手机发布的时候,好多小伙伴参加线上抢购明明看着是有货,付款的时候却发现已经没有了。这就是数据一致性的问题。
一、信息数据时代,数据延迟的影响
首先可以肯定是,“扣款延迟”这个问题其实是数据一致性的问题,就是保证数据一致性。比如前几天苹果手机发布的时候,好多小伙伴参加线上抢购明明看着是有货,付款的时候却发现已经没有了。这就是数据一致性的问题。当然今天抢不到的话还可以等明天,但是在一年的某个特性时间段,抢不到确是“要命”的。
这就是春运。许多人可能还记得前几年被春运抢票支配的恐惧——眼看着上午10点放票了,点击12306就是刷不出网页;好不容易刷出了网页,点击购票的时候发现账号被弹出,需要重新登录;费尽千辛万苦登陆进去,发现支付出现问题……折腾半个小时,页面终于正常了,点进去发现火车票也早已卖光。
几乎所有漂泊在外的游子们都经历过这种痛。这其中的原因颇为复杂,除了当年12306自身架构的原因之外,更重要的因素就是售票系统对于强数据一致性的苛刻要求——每卖出一张票,哪怕是区间车票,后台数据库都要进行强制刷新,而一次次的重复刷新最终将系统资源耗得干干净净。
当然系统故障这并不是设计者的初衷。春运是牵扯上亿人迁徙的大事,马虎不得,因此在系统架构涉及之处就对数据一致性有极高的要求,包括金融、通信领域等关乎国计民生的行业都有这样近乎苛刻的要求,我们将其统称为“关键业务”。
既然是关键业务,对于稳定性、可靠性、安全性的要求就会较高,这也是它区别于互联网等其他行业的特征。毕竟你看视频、打游戏、做直播的时候有些微的卡顿或者网络延迟并不影响实际业务。当然可能你的游戏角色因此死掉、可能你心仪的商品被别人买走、你关心的剧情戛然而止,但是这并不是无可挽救的错误,甚至只是让你感觉稍微有一点沮丧而已。
关键业务却不是。你不能设想高铁一个座位同时卖出几张票,不能设想忽然收到运营商的天价账单、更不能想象你存在银行的钱不翼而飞。是的,在这些关键的数据上,我们不允许一丝一毫的错误,这就是我上面说的“数据强一致性”。
延伸阅读:
二、什么是网络延迟
网络延迟是指网络通信中的延时。网络延迟显示了数据通过网络传输所需的时间。延时或滞后时间较长的网络具有高延迟,而响应时间快速的网络具有低延迟。企业更喜欢低延迟和更快的网络通信,以实现更高的生产率和更高效的业务运营。某些类型的应用程序,如流体动力学和其他高性能计算使用案例,需要低网络延迟来满足其计算需求。高网络延迟会导致应用程序性能下降,并且高到一定程度足以导致程序故障。