广告

管理数据:数据库的核心作用就是处理数据。简单来说两方面,一方面是要把数据存储起来;一方面是能够让数据很快很方便地被查询到。不同的数据库存储数据的方式不同,都有自己的特长,最常用的关系型数据库MySQLoracle,后面还有NoSql数据库redis、TiDB,文档数据库MongoDB擅长存储非结构化的数据,还有列式存储数据库Hbase可以很容易的支持分布式场景,MPP数据库可以支持OLAP类的交易,还有专门支持搜索场景的elasticseach。

读写分离:对于关系型数据库来说,如果数据量很大,而且查询效率有待提升的时候,通常情况下就是做一个读写分离的方案,将海量的查询请求引导到读库上,读库还可以根据需求做几个读库。对于oracle来说可以使用ADG、goldenGuard之类的工具实现快速的主库和备库之间的数据同步。MySQL直接搭建成主从模式就可以。所有的分布式数据库的数据都是有一个主节点和多个备份节点,多个备份节点在需要的时候都可以支持读应用。

高可用架构:数据库作为最重要的后端组件,必须是高可用的。那要怎么做?通常情况下的办法就是所有的组件都做到冗余,而不能只有一个。不管是数据节点、管理节点还是计算节点,都需要有备份,那么主备节点之间如何管理,ZooKeeper在分布式场景中被广泛使用,它就是管理动物园中的各种动物的。有条件的公司,为了高可用还会做容灾部署,什么同城两中心、两地三中心之类的,这个如果要自己做的话,就真是钱堆出来的。当然当前云化这么流行,云的宣传就是支持这些的,在不同的地方买几个实例还是能够实现的。

————————
欢迎访问个人网站:
https://lessthinker.com
欢迎搜索并关注个人公众号:虾响;每日更新一道面试题,大家一起来想,一起成长。

广告