mysql是最流行的开源数据库,其分布式架构也是用的最成熟的。请问金融行业适合用什么样的分布式架构哪?可否给一个比较成熟的分布式架构图。
那分布式架构如何做灾备架构方案那?
对于MySQL的高可用架构似乎有很多种。
NBD算一种,切片式。但是如果切片主键设置不合理的话,其实在后期的数据运维过程中也很麻烦。而且这种技术目前来讲用的比较少,成熟度有待进一步考验。
GR算一种,所有节点地位对等,通过分布式一致性仲裁算法保障数据的最终一致性。对于架构本身的分布式一致性机制来讲是经得起考验的,很多互联网的架构底层一致性算法都是基于Paxos这个脉络的算法实现的。但是银行的业务是否适合,或者说那些业务领域的数据适合,至少还是一个疑问。
自身的主主、主备等高可用模式。大部分需要结合客户端的负载机制改造才能做到很好的负载分担。但是这个似乎是案例最多应用最广泛的模式了。
还有很多结合比如说Keepalive等做的一些高可用架构,完全是把MYSQL作为一种基础条件进行了二次集成或者开发才达到适合自己业务场景的理想架构。传统行业同样需要基于这个基本技术,来探讨和专研自己业务领域内的事情。
收起事务一致性是如何保证哪?
收起提问再精确下范围,应该是指:MySQL分布式数据库的部署架构,产品选择:MySQL官方有一款分布式事务数据库产品MySQL Cluster(NDB存储引擎)、开源产品分布式事务数据库中间件MyCAT、商业产品分布式事务数据库中间件TDSQL/HotDB/DDM,现在分布式事务数据库中间件在金融行业已确定标准名称为:计算节点。
1、计算节点的部署架构:(1)HA主备模式,例如:MyCAT、Cobar、DDM;(2)Cluster负载均衡模式,例如:TDSQL、HotDB;
2、存储节点的部署架构:(1)HA主备模式,例如:MySQL5.7。25及以上版本半同步无损复制;(2)Cluster负载均衡模式,例如:MySQL5.7.25及以上版本MySQL Group Replication(简称:MGR 或 组复制)。
3、计算节点的高可用:(1)HA主备模式,往往采用keepalive开源软件或F5/A10设备实现高可用的检测和故障切换;(2)Cluster负载均衡模式,往往采用LVS开源软件或或F5/A10设备实现数据库访问请求的负载调度。高可用的检测和故障切换 由计算节点自身的算法机制实现,往往是采用分布式选举协议实现内部的高可用和故障转移。
4、存储节点的高可用:(1)采用计算节点的高可用算法机制实现主备的mysqld服务检测、故障判断、故障切换等,一般故障切换的时间在3秒左右,例如:开源软件MyCAT、热璞HotDB;(2)采用客户端类似MHA的一主两从实现主备的mysqld服务检测、故障判断、故障切换等,一般故障切换的时间在10秒-30秒,例如:腾讯TDSQL。
收起