当前位置: 首页 > 科技观察

数据库高可用架构了解一下

时间:2023-03-17 13:25:28 科技观察

我们来看看数据库的高可用架构。我们来看看数据库的高可用架构。数据存储高可用解决方案的本质是将数据复制到多个存储设备上,通过数据冗余实现高可用。常见的高可用架构有master-slave、master-slave、master-master、cluster、partition等,下面说说每种架构的优缺点。主备架构1.基本架构拓扑图如下。整体架构很简单。几乎所有的数据库都提供主备复制功能,如Mysql、Oracle、MongoDB等。在这种架构下,备库主要负责数据备份,不参与实际业务的读写操作。如果备机改为主机,需要手动操作。2.优缺点分析对于客户端来说,不需要感知备机的存在。甚至在容灾之后,通过人工干预将原来的备机变更为主机。客户端只需简单修改连接地址,应用架构无需做任何改动;主机和备机只需要进行数据复制,不需要进行状态判断、主备倒换等复杂操作。这种架构的缺点也很明显:备机主要用于数据备份。如果应用架构没有读写分离设计,会造成成本浪费,而且故障后需要人工干预,无法自动恢复。该过程也容易出错。Master-slavearchitecture主从架构和主从架构只有一字之差,但是在实际的应用架构上却有很大的差距。在主从架构下,备库不参与业务操作,但在主从架构下,备库需要参与业务操作。应用架构需要做读写分离,对主库写操作,从库读操作。.一、主从基本架构拓扑图如下二、优缺点分析与主从架构相比,有以下优点:当主库发生故障时,读操作相关业务可以继续跑步。性能可以为不同的角色提供不同的从库。缺点:在主从架构下,从库需要提供读服务。如果主从复制延迟大,会导致数据不一致;需要修改应用架构,一般会增加读写分离。复杂度高于主备;故障后需要人工干预,无法自动恢复,人工处理效率比较低,恢复过程也容易出错。以上两种架构的主从切换有两个共同的问题:主库故障后无法进行写操作。主库出现问题后,需要人工介入,将从库切换到主库,人工切换可能不及时或者切换失败的问题。基于以上两个问题,我们需要一个可以自动切换的架构。当主库出现故障时,可以自动将从库切换为主库,无需运维人员干预。要实现主从切换架构,必须考虑一个关键点:必须有一种机制可以监控数据库节点的运行状态,从而决定是否进行切换。我们一般在这个架构中引入一个第三方中介,数据库节点定期向第三方中介汇报自己的状态信息;或者第三方中介定期去数据库节点拉取数据库状态;优点:解决了人工干预的问题,大大减少了故障时间,一定程度上保护了运维人员的生命安全。缺点:结构复杂,引入第三方中介后,需要保证第三方中介的高可用。这里推荐大家学习一下mysql的MHA架构,或者使用ZK和Keepalived自己搭建主从切换架构。Mastermaster架构mastermaster架构也称为mastermasterreplication。两个数据库都是主数据库,它们相互复制数据。客户端可以选择任意数据库进行读写操作。与主从切换相比,主从架构有以下优点:两个数据库都是主库,没有切换的概念。客户端无需区分不同角色的主机,随意向任意数据库发送读写操作。结构简单,但是允许写入两个主库是很危险的:A和B两个库使用自增主键,插入用户后A库id为1,B库id也为1插入用户后,数据冲突tbupdatetbsetcol=col+1updatetbsetcol=col*2及以上,希望对你有所帮助!