分布式数据库的实施我觉得分为两方面。一方面是数据库的对象实施,怎么设计表,怎么选分区键,怎么控制业务访问。另一方面是数据库架构实施,怎么挑选节点,怎么安排好组件,怎么做多中心部署。
从第一个方面来说,大表选择查询或者关联的条件列作为分布列,小表需要建立成复制表。减少非分布列条件的大表关联查询,减少分布式事务。也就是从前到后都要按照分布式的理念去设计。
从架构的角度来说,需要确定好多中心的部署方案,需要确认好集群内部的冗余机制,保证出现单机故障或者单中心故障的情况下,都有冗余措施能够保证数据服务可用,数据不丢失等。
最后做好检查和维护的方案。保障系统稳定运行。
收起在设计分布式数据库架构时,要考虑高可用、负载均衡、网络、存储、监控与告警、备份与恢复、灾备、日常运维、应用适配和优化等多方面的方案规划。尤其需要特别注意网络延时、多应用数据隔离、分布式事务处理、数据归档等难点问题。
收起分布式数据库分为横向数据分片分担负荷,纵向主从分片增加可靠性。
业务分片主要是根据业务表的实际规模或者设计规模进行设计,跟业务功能有关。
纵向分布主要是根据同城异地机房的分布来设计,一般一个机房部署1-2个节点,
如果有跑批类的需求,还可以增加分片专门用于跑批。
对于量不大的点,可以在同一个硬件节点部署2个分布式数据库实例来减少投资。
具体情况肯定还是要具体分析。
收起