1.1.2 数据库集群的架构指标
为了提高可用性,数据库集群通过数据副本和数据切分来实现数据部署策略,通过一致性指标来影响实际部署性能。注意,数据副本和数据切分是两种不同的部署策略,当采用数据副本部署策略保存数据时,需要重点关注一致性指标,而当使用数据切分部署策略时,对数据一致性指标没有明确要求,这主要是由数据库集群架构的部署模型决定的,各节点之间也不再需要进行数据同步。在某些要求较高的场合,数据副本和数据切分可能在数据库集群中同时存在,因而需要进行区分说明。
在不同节点间通过数据副本实现同步需求的模型中,数据库集群的一致性指标将影响节点间的数据副本分布模型,因此它也是描述数据库集群中数据副本和同步机制的关键指标。要注意的一点是,数据库集群的一致性指标不同于单节点事务性的一致性指标,前者是由各节点之间数据副本的同步状态决定的,将影响各节点对数据的读写权限,后者是由单节点数据事务完整性约束条件决定的。此外,数据库集群架构还有一些常用指标,侧重对集群硬件和部署方案进行整体评价,下面对此进行详细说明。
1. 性能
数据库集群建设的主要目的是通过横向扩展服务器,提高数据库的整体性能。数据库集群的性能参数有很多,常用的参数包括数据库响应时间(Response Time,RT)、每秒查询数(Queries Per Second,QPS)、每秒事务数(Transactions Per Second,TPS)等。RT为数据库集群对某项请求的响应时间,QPS是数据库集群每秒能够响应的查询次数,TPS是数据库集群每秒能够处理的事务数量。
从数据库集群架构来看,有3个方面的因素会影响实际的数据库性能。第一,硬件服务器的数量与参数。在理想状态下,数据库集群整体性能应当随着节点数量的增加而线性提高,但实际上,数据库集群部署模式必然会引入一定的性能损失,特别是当节点数量增加到一定规模时,数据库集群中系统流量调度、网络数据传输、硬件部署方式等都会影响数据库集群的实际性能。在可控范围内,横向节点的增加是数据库集群性能提升的必然选择,这是因为通过纵向扩展方式增加单节点性能,会显著提高单节点服务器的内部复杂性。第二,数据库集群的整体架构。在数据库集群中,数据的分布模式、各节点数据的一致性同步需求、数据读写运行机制,也会对数据库集群性能产生影响。相同的硬件服务器资源,在面向同一类业务系统应用时,不同的数据库集群架构可能产生显著的性能差别。第三,系统业务需求影响。不同的系统业务需求,如读多写少和数据频繁写入的两套信息系统,当采用同一个数据库集群架构时,数据库集群性能可能相差很大。当然,系统业务需求和数据库集群架构是强相关的,系统业务需求会对数据库集群架构的部署方案产生直接影响。在分析数据库集群的性能时,需要综合以上各方面的因素。
2. 高可用性
高可用性指的是服务器在面对各种异常时仍然可以正确对外提供服务的能力。为了应对软件异常、系统崩溃等事故的发生,通常采用冗余策略来实现服务的高可用性。数据库集群采用多节点部署模式,本身就提供了硬件的冗余机制。一个节点系统崩溃后,通过相关机制将数据库服务自动切换到备用节点。整个切换过程对业务是透明的。在描述系统高可用性指标时,一般用数据库服务器暂停时间来衡量,数据库服务器暂停时间越短,系统的可用性越高。
在实际运维过程中,数据库集群对高可用性的要求可以从两个层面去理解。从宏观角度讲,不管出现什么异常,只要数据库集群不发生数据丢失,在可接受范围内响应数据库查询请求,就可以说这个数据库是满足高可用性要求的。但从微观角度讲,只要涉及数据库集群,在存在多副本的数据库集群架构中,就必然存在不同节点间的数据交互,存在一定的响应延迟,在这种情况下,系统数据在某个微观时间粒度下的一致性是得不到满足的。对于一些强一致性要求的应用,如银行业务,这里的高可用性就必须以强一致性为前提。对于其他一些只需要满足最终一致性要求的应用,高可用性指标则可以进行折中处理。
3. 可扩展性
可扩展性指的是数据库集群通过横向扩展机器规模,提高数据库集群整体计算能力和存储容量,从而提高数据库集群整体性能。可扩展性是数据库集群的基本属性,当业务对数据库读写需求进一步增大时,数据库集群的可扩展性决定了其是否能够进一步无损或高效扩展。
前面提到,数据库集群性能可能并不能随着节点数量的增加而线性提高,数据库集群整体性能损失越小,数据库集群的可扩展性也就越好。一般的数据库集群都无法做到无限制增加节点,在节点数量增加到一定程度后,数据库集群可能会面临一系列新的技术与运维问题,节点之间的网络连接拓扑结构和数据同步方式都可能成为制约数据库集群进一步扩展的瓶颈。例如,当服务器节点数量不断增加时,其对数据中心网络的创新需求将不断增多,甚至对服务器节点本身也会产生新的多端口连接需求,不然增加再多的节点也无法充分利用各节点性能。可扩展性要求数据库集群结合自身架构的优缺点,保持一定的可扩展余量,从而在业务访问需求增大时,可以通过增加节点满足业务扩展需求。在数据库集群当前架构无法满足业务需求时,需要考虑数据库集群是否需要重新架构,以及它的可扩展性是否能够得到极大的提升。
除了以上3个评价指标,数据库集群在部署过程中,服务器硬件架构、系统类型、数据规模和运维方式等诸多因素,都会最终影响数据库集群的部署难度。在评价数据库集群架构指标时,数据库集群的部署难度也将一并考虑在内。