组件概述
HAS+DCS 是Vastbase的一个高可用方案。基于流复制的方式,备库不断的从主库同步相应的数据并应用WAL日志,最终持久化到持久化存储中,达到备库与主库物理数据一致的状态。当主库宕机时,HAS自动将备库升级为主库并对外提供数据库服务。
DCS介绍
DCS是一款基于Raft算法和协议开发的分布式 key-value 数据库。在本高可用方案中,作为DCS角色存在。HAS监控本地的数据库状态,并将相关信息写入DCS,每个HAS都能读写DCS上的key,从而获取数据库信息。
DCS架构如下所示:
名称 | 功能概要 |
---|---|
HTTP Sever | 处理用户发送的API请求,以及其他DCS节点的同步与信息请求。 |
Store | 处理DCS的事务,包括节点状态的变更、监控、事件处理等。 |
Raft | 强一致算法的具体实现。 |
WAL | 预写日志,DCS用户持久化存储的日志格式。 |
整个处理流程:
用户发送请求,经过HTTP Sserver转发给store,进行具体的事务处理。如果涉及到节点的修改,则交给raft模块进行状态变更,日志记录,再同步给别的DCS节点。
HAS介绍
HAS使用Python语言开发,结合DCS实现数据库高可用方案。HAS接管数据库的启停,同时监控本地的数据库,并将本地的数据库信息写入DCS。
HAS的主备端是通过是否能获得leader key来决定的,获取leader key的HAS为主节点,其它的为备节点。