浅谈数据库服务的两高一低
点击蓝色“有关SQL”关注我哟
加个“星标”,天天与10000人一起快乐成长
今天说下数据库服务中的两高一低:高可用,高并发,低延迟。话题的灵感来自于这本书《高性能MySQL》.
越来越喜欢体验二字。为了感受良好的体验,不愿听出租车司机一路BB,更不想感受速度与激情,从浦东国际机场到张江,原本 50 块钱的路费,我宁愿付 200 块。
这一路,司机欢声笑语,妙语连珠,不到2平米的mini室内仓,就像2000块的商务舱,充满和谐与温暖。我整个人躺在浮云上,高速两旁的霓虹,应接不暇,看着它们哈着腰,恭迎我回家。
当然还有很多其他的指标,有待写完两高一低后补充
评价服务的优良,本质上是给用户体验打分。在享受丝滑般柔顺的服务时,作为消费者,多付点钱,真不算件事儿。
我们做数据库的同行也是。提高我们数据库产品使用的体验,也会被用户考核。其中,重要的三条,就是开头所说的,两高一低。
高可用
比如,在我们理发的时候,无论是二八分,三七开,还是对半分,总不想因为停电,顶着一头残次凌乱的发型,走出理发店。那句老话怎么说的,“头可断,血可流,发型不能乱”。
老读者都知道,我是个有咖啡瘾的人,在冲一杯焦糖玛奇朵的时候,即将出炉的热焦玛,因为缺少牛奶,变成一杯热美式,这个结局怎么能接受?真有那么一天,恐怕那一整天我都很难写出优雅的SQL.
这就是高可用要解决的问题。要提供持续可用的服务。
高并发
我有段时间特别喜欢站在工作区,看星巴巴的咖啡技师,是怎么制造一杯咖啡的。随着技师的熟练程度不同,制作一杯咖啡的时间各有长短。特别是看棕袍和黑袍技师,举手一投足,都是一段韵律。
比如年轻的后生,可能一杯需要2分钟。磨好咖啡粉,蒸馏,打奶,加温,混合,最后上糖浆,加盖。这一系列的操作,任何一步都会有时间差,根据门店人流的不同,咖啡师的心态或许还会变化,导致操作的变形,或快或慢。
而等级最高的棕袍技师,每一步都有条不紊,甚至还会越做越快,平常技师是在等机器出品,而他们用自己的节奏,在催着机器生产,不一样。
当然,很简单的一个算法,人越多,咖啡师越忙,出品的时间会比人少时,多出很多。这个时候,客人等待的焦虑自然增长。
有限人数的咖啡师,要服务比平常多出2,3倍的人流,这就是高并发。
要给客户一贯快速的体验,就要解决这类高并发的事情。你作为门店老板会怎么做?增加咖啡机,还是人手。
无论采取何种措施,必定是动态策略。肯定不会为了比平时多出1,200人的流量,就添加近百万的机器,对不对。也不会像理发店一样,增加n多的服务人员,看上去服务员比客户还多。那种理发店,我劝你不要去!
低延迟
无论是高可用,还是高并发,低延迟才是保证服务质量的关键。
在人多时,一杯咖啡等半小时,客户会不会买单?如果不会,我们就要考虑让这个时间缩短,比如5分钟。让顾客在每时每刻,都能在5分钟内享受一杯香浓咖啡。
这就是门店给顾客的体验。低延迟,是保证体验质量的本质手段。
无论咖啡店家怎么强调,自己提供的是7*24小时服务,还是标榜可以接受3000人服务规模,这两个特性,对于每个消费者来说,都不是特别关心。
消费者们最关心的,是我想量喝咖啡的时候,是不是5分钟内能喝上。至于24小时营业,每小时能接客200,300人,都不在乎。
评判标准
两高一低是数据库服务的评判标准,但并不是每种应用都需要做到这三条。
举个例子,作为中国人,感同身受的是,过年时买火车票。你的终极焦虑,在于能不能买到票。至于服务多少亿人,是不是24小可以买票,前者是铁总该考虑的问题,后者是你自己该统筹的事情。
所以,高并发(要服务14亿人),低延迟(2分钟内得到出票结果)就是这类服务要考虑的两个体验重点。而高可用(24小时可以买票),可以稍微降低下,实际上从早9点到晚9点,也足够消费者做好自我调节了。
往期精彩: