轻松学习分布式|系列3|分布式数据库

网友投稿 632 2023-04-07

轻松学习分布式|系列3|分布式数据库。

轻松学习分布式|系列3|分布式数据库。

我们继续来讲分布式,回到我们的创业游戏。

我们的业务规模上来了,客户也越来越忠诚了。很多客户都通过我们的订票服务,来方便自己的行程。

那对这些老客户,我们的宗旨是:要不断超越客户的期待。

所以,我们要建立我们的客户数据库。

我们要记录下每个客户的偏好的航空公司,偏爱的酒店。下次服务,才能直接更好地服务客户。

怎么办?

最简单的办法,每个客服小姐姐各自用自己的记事本,记录下客户的号码,偏好等信息。

这些记事本就是我们的“客户数据库”。

这些数据都记录在记事本上,会有一个问题,如里同一个客户,每个客服小姐姐都记录一次。是不是很费时费力,还重复记录,浪费资源。

怎么办?

还是跟之前一样,拆分!垂直拆分。

再拆分一组,就叫:客户信息记录组。

如果客户小姐姐要记录客户信息,就把信息写在纸条上,然后直接扔给:客户信息记录组,让这个小组自行处理:去除重复,更新信息。

当然,我们的客户信息记录组,可以用execl把客户信息上记录下来。这样,也方便数据处理。

现在我们的业务架构是这样的:

有同学说,这个架构图好像跟我们的IT软件架构图很像。

没错。其实,所有的IT软件架构,遵从从业务架构设计的。

技术只是工具,业务才是核心。

回到我们的客户信息记录组。这个组也有多个小姐姐记录,如果大家都各自用自己的excel,怎么保证大家的信息没有重复,都是一致的呢?

这个时候,我们就要上数据库系统了。什么是数据库系统,简单来说,就是记录数据的仓库。

好,我们买了一台电脑,招了一个程序员,下载了个mysql,写了一个简单程序,给客户信息记录组的姐姐用。

刚开始,数据不大,问题不大。

当数据越来越多时,一台数据库明显支持不下。怎么办?

很简单,多买几台数据库。能用钱解决的问题,就不是问题。

那现在问题又来了,这些数据库怎么保持数据一致性

这个就是分布式数据库要解决的问题。什么是分布式数据库?

简单来说,它就是用多台数据库组成一个“整体”,给外界提供数据库服务的数据仓库系统。

有同学会说了,你要很大很大的数据量才能用分布式数据库。你一家小公司,用这个是不是浪费了?

有道理!一般情况下,小公司是用不上分布式。但我们做为有梦想的企业家,一定要提前规划,站在未来看现在!我们才有机会成功!

马云说过:梦想还是要有的,万一实现了呢?

所以,叫那个程序员开始干活!

首先我们要分析一下业务。

客户小姐姐大部分情况下,都 是查询客户信息的比较多,占了80%。新增,和更新信息的情况比较少,占了20%。

如果查询和记录都在一个数据库,经常会造成冲突,造成“锁表”。这会造成严重的性能问题,会造成对客户体验严重的损害!

很自然,我们可以想到,那是不是可以分开两个库,一个用来记录,一个用来查询。

这就是读写分离,读写分离是很重要的设计原则。可以极大地提高查询的效率。如下:

尽管采取了读写分离的方式,但随着数据库的压力继续增加,数据库的瓶颈越来越突出。怎么办?

我们分别对读写库的表进行水平拆分,也就是分表。

比如,可以按表中的唯一ID的hash值来分,如果hash值是偶数,就放在“偶数表”,如果hash值是奇数,就放在奇数表。

如下图:

讲到这里,我们基本上就建立了分布式数据库系统。

明天继续讲分布式架构的演进。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《大数据技术原理与应用》第二版-第四章分布式数据库HBase
下一篇:对话DDM:分布式数据库中间件全解析
相关文章