第323章 对天才的惺惺相惜(2 / 4)

十万涨到一百万,从一百万涨到一千万的时候,一台数据库扛不住了,你怎么办?”

他在那台服务器旁边又画了几台,用线连起来。

“正常情况下你们会把数据和计算分散到多台机器上去。

但分散之后,麻烦就来了。

用户A在第一台服务器上发起了转账,钱已经从他账户扣掉了。

但这条记录还没来得及同步到第二台服务器。

这时候用户A又从第二台服务器上查了余额,发现钱还在。

他又转了一次,同一笔钱被花了两次。”

陈浩在两台服务器之间画了一个问号。

“这就是分布式系统里最经典的一致性问题。

你们现在的架构,不管是LinUX还是NT,都没有处理这个问题的能力。

因为你们的后端还是传统的单主数据库加从库复制的模型。

这个模型在小规模下够用,但它不是为海量并发设计的。”

马克斯·列夫琴听得极为专注。

作为COnfinity的技术核心,他天天在跟数据库打交道。

上周系统高峰期的延迟一度飙到了三秒,用户投诉翻了好几倍。

他一直在找解决方案,但一直没有好的思路。

陈浩画完了一个简化版的分布式节点拓扑。

“真正能解决这个问题的,是一种新的系统设计理念。

把数据打散,分布到多个独立的节点上。

每个节点只负责一部分数据。

节点之间通过一套共识协议来保证数据的一致性。

任何一个节点挂了,其他节点可以自动接管它的职责。整个系统没有单点故障。”

他在拓扑图下面写了几个词:数据分片、一致性哈希、共识算法。

“至于共识协议的具体实现方式,包括怎么在网络延迟和节点故障的情况下依然保证事务的原子性和最终一致性。”

陈浩把笔帽盖上了。

“这些东西比较复杂,今天就不展开了。”

马克斯·列夫琴差点从椅子上站起来,想一把抓住陈浩。

哪有讲一半不讲的,尤