数据库架构规划方案
- 格式:docx
- 大小:1.17 MB
- 文档页数:9
架构设计之数据架构一、引言数据架构是指在系统架构设计中,对数据的组织、存储、访问和管理进行规划和设计的过程。
一个良好的数据架构能够提高系统的性能、可扩展性和可维护性,确保数据的完整性和安全性。
本文将详细介绍数据架构的设计原则、组成要素以及常用的数据架构模式。
二、设计原则1. 数据一致性:确保数据在不同的应用程序和模块之间保持一致,避免数据冗余和不一致的问题。
2. 数据可靠性:确保数据的完整性和准确性,防止数据丢失和损坏。
3. 数据安全性:采取合适的安全措施,保护数据的机密性和隐私性,防止未经授权的访问和篡改。
4. 数据可扩展性:设计一个可扩展的数据架构,能够满足未来系统的扩展需求,支持大规模数据的存储和处理。
5. 数据性能优化:优化数据的访问和查询性能,提高系统的响应速度和吞吐量。
三、组成要素1. 数据模型:数据模型是描述数据结构、关系和约束的抽象模型。
常用的数据模型包括层次模型、关系模型、对象模型和文档模型等。
根据具体的业务需求和系统特点,选择合适的数据模型进行设计。
2. 数据库管理系统(DBMS):DBMS是用于管理和操作数据库的软件系统。
常见的DBMS包括关系型数据库(如Oracle、MySQL)和非关系型数据库(如MongoDB、Redis)。
根据系统的需求和性能要求,选择合适的DBMS进行数据存储和管理。
3. 数据存储:数据存储是指将数据保存在物理介质上,包括磁盘、内存、云存储等。
根据数据的访问频率和存储需求,选择合适的存储介质和存储方案,如使用SSD提高数据的读写速度,使用分布式存储系统提高数据的可靠性和可扩展性。
4. 数据访问接口:数据访问接口是系统和数据之间的桥梁,提供对数据的访问和操作功能。
常见的数据访问接口包括SQL、NoSQL、RESTful API等。
根据系统的需求和开发技术,选择合适的数据访问接口进行设计和实现。
四、数据架构模式1. 单体架构:将所有的功能模块集中在一个系统中,数据存储在同一个数据库中。
企业数据库建设方案一、引言随着信息化和数据驱动业务的兴起,企业对于数据库的需求越来越迫切。
数据库作为企业存储和管理数据的核心基础设施,其建设方案的合理性和有效性对于企业的运营和决策至关重要。
本文将为企业提供一份完整的数据库建设方案,以满足其各项业务需求和数据管理要求。
二、需求分析在制定数据库建设方案之前,首先需要对企业的需求进行全面的分析。
根据企业的实际情况,以下是一些可能的需求:1.数据存储和管理:企业需要一个可靠和高效的数据库系统,能够存储和管理大量的数据。
2.数据安全和权限控制:企业需要确保数据的安全性,并能够进行细粒度的权限控制,防止未授权的访问或操作。
3.数据备份和恢复:企业需要有合理的数据备份和恢复机制,以应对各种意外情况和灾难。
4.数据分析和报告:企业需要有数据分析和报告工具,能够提供可视化的数据分析和报表功能,帮助企业进行决策和规划。
三、技术选型在确定数据库建设方案之前,需要进行技术选型,选择合适的数据库管理系统(DBMS)。
以下是一些常见的DBMS:1.关系型数据库管理系统(RDBMS):如MySQL、Oracle、SQL Server等。
适用于结构化数据和复杂的查询操作。
2.非关系型数据库(NoSQL):如MongoDB、Redis等。
适用于海量数据的存储和高速读写操作。
3.图数据库:如Neo4j、OrientDB等。
适用于存储和查询关系数据。
根据企业的实际需求和数据特点,选择一种适合的技术来构建数据库系统。
四、数据库架构设计基于对企业需求的分析和技术选型,可以开始进行数据库架构设计。
以下是一些关键的设计决策:1.数据库模式设计:根据实际需求和数据特点,设计数据库的表结构和关系模式,保证数据的一致性和完整性。
2.数据库集群设计:如果企业需要处理大量的数据并保证高可用性和扩展性,可以考虑使用数据库集群,将数据分布到多个节点上。
3.数据库索引设计:根据数据库的查询需求和性能要求,设计合适的索引,加快数据的访问速度。
大数据库建设方案一、引言随着信息技术的快速发展和数据量的爆炸性增长,大数据库已经成为企业管理和决策的重要工具。
本文将介绍一个大数据库建设方案,以满足企业日益增长的数据需求和分析要求。
二、需求分析1. 数据量:当前企业数据量庞大,需要存储和处理大规模数据,因此需要一个高效的大数据库系统。
2. 性能要求:系统需要具备快速的数据读写能力,以保证数据的实时性和准确性。
3. 数据安全:数据是企业的核心资产,系统需要有强大的安全性能,以保护数据的机密性和完整性。
4. 数据分析:企业需要通过对大数据的分析,提取有价值的信息和洞察,用于决策和战略规划。
三、技术选型根据以上需求,我们选择以下技术来支持大数据库的建设:1. 数据库系统:选择成熟稳定的关系型数据库管理系统(RDBMS),如Oracle、MySQL等,以支持高效的数据存储和检索。
2. 数据存储:采用分布式存储技术,如Hadoop Distributed File System(HDFS)或分布式数据库,以实现数据的高可用性和可扩展性。
3. 数据处理:利用并行计算技术,如Apache Spark、Hive等,进行大数据的处理和分析,以提高数据处理能力。
4. 数据安全:通过加密技术、访问控制和审计等手段,提供全面的数据安全保障。
5. 数据可视化:采用业界知名的数据可视化工具,如Tableau、Power BI等,将大数据转化为图表和报告,以便决策者更直观地理解数据。
四、架构设计1. 数据采集:通过数据采集工具或者API,将企业各个业务系统产生的数据进行采集和汇总,存储到数据湖(Data Lake)中。
2. 数据清洗和预处理:利用ETL工具,对原始数据进行清洗、去重、格式化等处理,提高数据质量和准确性。
3. 数据存储:将清洗后的数据存储到关系数据库或分布式存储系统中,保证数据的可靠性和高可用性。
4. 数据处理和分析:通过并行计算技术,对存储的大数据进行实时处理和分析,提取有价值的信息和模式。
架构设计方案第1篇架构设计方案一、项目背景随着信息技术的不断发展,企业对系统架构的要求越来越高。
为满足业务发展需求,提高系统性能、稳定性和可扩展性,降低运维成本,特制定本架构设计方案。
本方案将结合现有技术,为客户提供一套合法合规、高效稳定的系统架构。
二、项目目标1. 满足业务发展需求,提高系统性能。
2. 确保系统稳定性和可扩展性。
3. 降低运维成本,提高运维效率。
4. 符合国家法律法规及行业标准。
三、技术选型1. 开发语言及框架:- 后端:采用Java语言,使用Spring Boot框架进行开发。
- 前端:采用Vue.js框架进行开发。
2. 数据库:- 关系型数据库:采用MySQL。
- 非关系型数据库:采用MongoDB。
3. 缓存:- 本地缓存:使用Redis。
- 分布式缓存:使用分布式缓存技术。
4. 消息队列:- 采用RabbitMQ作为消息中间件。
5. 搜索引擎:- 采用Elasticsearch作为全文搜索引擎。
6. 容器化技术:- 使用Docker进行容器化部署。
7. 持续集成与持续部署:- 采用Jenkins作为持续集成与持续部署工具。
四、架构设计1. 整体架构:- 采用分层架构,分为前端、应用层、服务层、数据层和基础设施层。
- 各层之间通过API接口进行通信,实现高内聚、低耦合。
2. 应用层架构:- 采用微服务架构,将系统拆分为多个独立的服务单元。
- 每个服务单元负责一块具体的业务功能,易于扩展和维护。
3. 服务层架构:- 使用Spring Cloud构建服务治理体系,实现服务注册、发现、负载均衡等功能。
- 采用熔断、限流、降级等机制,确保系统稳定性。
4. 数据层架构:- 采用读写分离、分库分表等技术,提高数据库性能。
- 使用Redis、MongoDB等缓存技术,降低数据库访问压力。
5. 基础设施层架构:- 使用Docker容器化技术,实现应用的高效部署和运维。
- 采用Kubernetes进行容器编排,实现资源的高效利用。
数据库集群实施方案清晨的阳光透过窗帘,洒在我的办公桌上,我泡了杯咖啡,打开电脑,开始构思这个“数据库集群实施方案”。
思绪像一条条跳跃的代码,在脑海中飞速流转。
一、需求分析1.业务场景:我们的业务场景是处理大量并发请求,数据读写频繁,对数据一致性和可用性要求极高。
2.数据量:目前数据量已经达到PB级别,并且还在不断增长。
3.性能要求:系统需要在高峰时段处理数万次并发请求,响应时间要尽可能短。
二、技术选型1.数据库类型:考虑到业务场景和数据量,我们选择了MySQL作为主数据库,因为MySQL具有成熟的开源社区,稳定性和性能都很好。
2.集群方案:为了实现高可用和易于扩展,我们选择了MySQLCluster作为集群方案。
MySQLCluster是一种基于NDB存储引擎的分布式数据库集群方案,具有高可用性、高并发性和易于扩展的特点。
3.中间件:为了提高数据库的并发能力,我们选用了ProxySQL作为数据库中间件,它可以帮助我们实现读写分离、负载均衡等功能。
三、集群架构设计1.节点规划:我们将数据库集群分为三个节点,分别是主节点、从节点和备节点。
主节点负责处理写请求,从节点负责处理读请求,备节点作为备份,确保数据不丢失。
2.数据分片:为了提高数据读写性能,我们将数据分为多个分片,每个分片存储在不同的节点上。
3.读写分离:通过ProxySQL实现读写分离,写请求发送到主节点,读请求根据负载情况分配到从节点。
4.数据同步:主节点和从节点之间通过MySQLCluster的数据同步机制进行实时数据同步。
四、实施方案1.环境搭建:搭建MySQLCluster集群环境,包括安装MySQL、配置集群参数等。
2.数据迁移:将现有数据迁移到新搭建的MySQLCluster集群中。
3.应用改造:对现有应用进行改造,使其支持读写分离和分布式数据库集群。
4.性能测试:在集群搭建完成后,进行性能测试,确保满足性能要求。
5.监控与维护:搭建监控平台,对数据库集群进行实时监控,确保系统稳定运行。
数据架构设计方案指导书一、引言数据架构是指在系统中对数据进行组织、存储和管理的方式,它是构建稳定、高效和可扩展系统的基础。
本指导书旨在提供数据架构设计方案的指导,确保系统能够满足业务需求并具备良好的可维护性和扩展性。
二、背景在当前快速发展的数字化时代,数据成为企业最重要的资产之一。
有效的数据架构设计可以帮助企业在数据管理和数据驱动决策方面取得竞争优势。
因此,我们需要制定一个合理的数据架构设计方案,以满足业务需求和未来的发展。
三、目标本数据架构设计方案的目标如下:1. 提供高效、可靠和安全的数据存储和访问机制;2. 支持多种数据类型和数据源的集成;3. 提供灵活的数据处理和分析能力;4. 保证数据的一致性、完整性和可用性;5. 支持系统的可扩展性和可维护性。
四、设计原则在制定数据架构设计方案时,我们应遵循以下原则:1. 数据一致性:确保数据在不同系统和组件之间的一致性,避免数据冗余和数据不一致的问题;2. 数据安全性:采取适当的措施保护数据的安全性,包括数据加密、访问控制和数据备份等;3. 数据可扩展性:设计可扩展的数据架构,以应对数据量的增长和业务需求的变化;4. 数据性能:优化数据访问和处理的性能,提高系统的响应速度和处理能力;5. 数据可维护性:设计易于管理和维护的数据架构,包括数据清洗、数据迁移和数据备份等;6. 数据集成:支持多种数据源和数据类型的集成,实现数据的全面分析和利用。
五、数据架构设计方案1. 数据存储层:a. 数据库选择:根据业务需求和性能要求选择合适的数据库类型,如关系型数据库、NoSQL数据库或内存数据库等;b. 数据库架构:设计数据库的表结构、索引和分区等,以提高数据的查询和存储效率;c. 数据库集群:采用数据库集群技术实现高可用性和负载均衡,确保系统的稳定性和性能;d. 数据备份和恢复:制定数据备份策略,定期备份数据并测试恢复过程,以防止数据丢失和系统故障。
2. 数据处理层:a. 数据采集:设计数据采集的流程和机制,包括数据源的选择、数据提取和数据传输等;b. 数据清洗:对采集到的数据进行清洗和转换,去除重复数据和错误数据,确保数据的质量和准确性;c. 数据集成:将不同数据源的数据进行整合和集成,实现数据的全面分析和利用;d. 数据转换和计算:对数据进行转换和计算,生成适合分析和决策的数据集;e. 数据存储和检索:将处理后的数据存储到数据存储层,并设计高效的数据检索机制,以提高数据的访问效率。
一、数据库架构原则1.高可用2.3.高性能4.5.一致性6.7.扩展性8.二、常见的数据库架构方案方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用jdbc:mysql://vip:3306/xxdb1、高可用分析:高可用,主库挂了,keepalive(只是一种工具)会自动切换到备库。
这个过程对业务层是透明的,无需修改代码或配置。
2、高性能分析:读写都操作主库,很容易产生瓶颈。
大部分互联网应用读多写少,读会先成为瓶颈,进而影响写性能。
另外,备库只是单纯的备份,资源利用率50%,这点方案二可解决。
3、一致性分析:读写都操作主库,不存在数据一致性问题。
4、扩展性分析:无法通过加从库来扩展读性能,进而提高整体性能。
5、可落地分析:两点影响落地使用。
第一,性能一般,这点可以通过建立高效的索引和引入缓存来增加读性能,进而提高性能。
这也是通用的方案。
第二,扩展性差,这点可以通过分库分表来扩展。
方案二:双主架构,两个主库同时提供服务,负载均衡jdbc:mysql://vip:3306/xxdb1、高可用分析:高可用,一个主库挂了,不影响另一台主库提供服务。
这个过程对业务层是透明的,无需修改代码或配置。
2、高性能分析:读写性能相比于方案一都得到提升,提升一倍。
3、一致性分析:存在数据一致性问题。
请看,一致性解决方案。
4、扩展性分析:当然可以扩展成三主循环,但笔者不建议(会多一层数据同步,这样同步的时间会更长)。
如果非得在数据库架构层面扩展的话,扩展为方案四。
5、可落地分析:两点影响落地使用。
第一,数据一致性问题,一致性解决方案可解决问题。
第二,主键冲突问题,ID统一地由分布式ID生成服务来生成可解决问题。
方案三:主从架构,一主多从,读写分离jdbc:mysql://master-ip:3306/xxdbjdbc:mysql://slave1-ip:3306/xxdbjdbc:mysql://slave2-ip:3306/xxdb1、高可用分析:主库单点,从库高可用。
数据库集群架构设计与部署数据库是现代软件应用的核心组成部分之一,而随着数据量和访问需求的增大,传统的单个数据库往往无法满足高并发和高可用的要求。
因此,数据库集群架构成为了解决这一问题的有效方案。
本文将围绕数据库集群架构的设计与部署展开论述。
第一部分:数据库集群架构设计在设计数据库集群架构时,需要考虑以下几个关键要素:1. 高可用性:集群中的每个节点都可以互为备份,出现节点故障时,其他节点可以自动接替服务,保证系统的持续可用性。
2. 分布式存储:将数据分散存储在不同节点上,避免单点故障,并提高系统的读写性能。
3. 数据一致性:要确保数据在集群中的各个节点之间的一致性,即当有数据更新时,所有节点上的数据都要保持同步。
4. 负载均衡:通过负载均衡算法,将请求合理地分发到集群中的各个节点上,以达到均衡各节点的负载压力,提高系统的整体性能。
基于以上要素,可以选择合适的数据库集群架构模式,常见的有主从复制、主备份和分布式存储等。
第二部分:数据库集群部署流程数据库集群的部署需要经过以下几个步骤:1. 环境准备:首先,需要搭建适合的硬件环境,包括服务器、网络设备等。
同时,为了确保系统的可靠性和安全性,还需要进行合理的容量规划和网络架构设计。
2. 安装数据库软件:选择适合的数据库软件,如MySQL、Oracle等,并按照文档提供的指导进行安装和配置。
3. 配置集群参数:根据具体需求,调整数据库的配置参数,以优化系统的性能和稳定性。
重点关注的参数有连接数、缓冲区大小、并发数等。
4. 数据迁移和同步:将现有的数据迁移到数据库集群中,并确保数据在各个节点之间的同步性。
这一过程中可能会出现数据冲突等问题,需要逐一解决。
5. 负载均衡配置:配置负载均衡设备或软件,将请求分发到集群中的各个节点上。
常用的负载均衡算法有轮询、加权轮询、哈希等。
6. 高可用性配置:将集群的各个节点配置成主备关系,确保在主节点发生故障时能够自动切换到备份节点,避免中断服务。
数据库规划方案背景如今,随着互联网技术的快速发展和智能化手段的逐步推广,数据已经成为社会运转的重要基石。
在这种情况下,如何高效地组织、管理、利用海量数据就成为了许多企业和机构置顶的重要问题。
此时,一个合理的数据库规划方案就显得格外重要。
目标和原则目标本数据库规划方案的主要目标是为企业或机构提供可靠、高效、灵活的数据库管理方案。
具体而言,该方案应具有以下特点:1.安全可靠:保证数据不被破坏、泄露,避免因为数据错乱造成问题。
2.高效稳定:数据可快速响应,不会因为数据库配置不当、数据设计错误等问题导致访问缓慢。
3.数据一致:数据应该有严格的量化和分类标准,并按照这个标准管理。
4.易于维护:方便进行系统管理、性能优化、故障处理、维护升级等操作,尽量减少人工干预。
原则针对上述目标,本规划方案主要关注以下原则:1.需求导向:充分了解客户的需求,以最优化的方式设计数据库方案。
2.模块化:将数据库系统规划成多个模块,每个模块分别处理不同的数据,让系统各模块之间实现松耦合。
3.可扩展性:在设计阶段就考虑到数据需求的变化,以便随时支持新增的业务。
4.标准化:数据库系统应该以行业标准为准则,如数据结构、命名、格式要一致,以方便数据之间的互通和整合。
流程一个好的数据库规划流程应该是有章可循、清晰易懂的。
本规划流程主要包括以下步骤:1.了解客户需求:收集客户数据需求,包括数据类型、数据量、数据频率、数据存储保留时间等,制定完整的数据库构建需求。
2.系统规划:将需求分模块划分,根据系统用途、部署环境、硬件性能等情况进行分析,整理出系统架构和拓扑图。
3.数据模型设计:根据客户需求和系统构架,设计出逻辑和物理模型。
其中,逻辑模型体现数据的业务含义,是数据交流的基础;物理模型则是针对硬件、操作系统、数据库管理系统等具体环境,将逻辑模型映射到实际存储设备上的模型,关注存储和访问效率。
4.数据字典:为方便标准化操作和数据交流,需建立数据字典,记录每个数据模型的细节。
数据库的容灾与高可用性架构设计在现代企业中,数据库作为存储和管理重要数据的关键组件,在保障数据安全和可用性方面起着至关重要的作用。
为了在遇到灾难性故障时能够实现数据的恢复和系统的快速恢复,数据库的容灾与高可用性架构设计成为不可忽视的问题。
本文将从容灾和高可用性两个方面来探讨数据库架构的设计。
一、容灾架构设计容灾是指在遭受灾害或故障时,能够保证系统和数据的连续性、完整性和可用性的能力。
常见的容灾架构设计方案有备份和恢复、冷备份、热备份、以及异地多活等。
以下将介绍这些方案的特点和适用场景。
1. 备份和恢复备份和恢复是最基本也是最常用的容灾方案。
通过定期对数据库进行备份,并将备份文件保存在不同地点,以便在数据库故障时能够快速恢复。
备份可以是完整备份或增量备份,具体根据数据量和恢复的时间要求来决定。
备份和恢复需要有明确的策略和计划,包括备份频率、备份存储位置、备份验证等。
2. 冷备份冷备份是指在数据库故障时,将备份数据拷贝到目标服务器上,并启动该数据库实例的过程。
由于数据库备份是离线状态进行的,所以恢复数据库的时间较长。
冷备份适用于数据量较大、恢复时间要求相对宽松的情况。
3. 热备份热备份是指在数据库故障时,将备份数据拷贝到目标服务器上,并将该数据文件应用到实时数据库中。
这种方式下数据库恢复的时间较短,可以保证业务的连续性。
热备份适用于恢复时间要求比较短的情况。
4. 异地多活异地多活是指在两个或多个地理位置上构建相同的数据库环境,并通过数据同步来保持数据一致性。
当一个地点的数据库出现故障时,可以切换到另一个地点的数据库继续提供服务。
异地多活适用于对系统可用性要求较高的场景,但需要考虑数据同步和网络延迟等问题。
二、高可用性架构设计高可用性是指系统能够在故障发生时保持功能正常和高效运行的能力。
在数据库高可用性架构设计中,常见的方案有主从复制、主从复制+读写分离、集群等。
1. 主从复制主从复制是指将主数据库的数据实时复制到一个或多个从数据库上,从数据库作为备份和故障切换的目标。
数据库架构规划方案
架构的演变
架构演变一定是根据当时要求的场景、压力下性能的需要、安全性、连续性的要求、技术的发展..... 我把架构的发展分为大概4个阶段:
1.单机模式
IT建设初期,高速建设阶段,大家要做的只有一件事,我需要什么构建什么,我需要ERP我买软件,需要HIS买HIS,这个时期按需构建大量的系统基本在这个时期产生,当然那个时候也没什么高可用的要求。
2.双机热备和镜像
基本是20年前的技术了,在高速构建后,一堆的系统运行中,用户发现我们的核心业务如果坏掉业务受影响,停机几个小时做恢复这是无法接受的,那么双机热备或镜像,Active-Standby的模式出现,这样一台机器工作,一台备用坏了在短时间可以接管业务,造成的损失会低很多!
那么问题也很明显,备机资源浪费,依赖存储,数据还是单点,成本较高。
产品也很多:RoseHA/RoseMirrorHA、NEC ExpressCluster、微软MSCS、Symantec VCS、Legato、RHCS 太多太多了。
随后为了解决数据单点的问题有出现了存储的主备,存储的双活这厂商也太多了,这里就不介绍了
基本上传统企业依然停留在第一和第二阶段,也就是要么单机,要么双机热备
3.节点多活
随着业务量越来越大,数据量不断飚升,系统高效性的矛盾显现出来,系统卡慢、报表、接口业务无法分离OLAP OLTP业务混合导致系统锁情况严重,资源消耗极其庞大,光靠升级硬件已经无法满足要求,横向扩展已经成为大势所趋。
同时切换时间、备机无法启动的问题也困扰着用户。
那么节点多活,多台机器同时对外提供访问的技术登上舞台,代表的ORACLE RAC、微软ALWAYSON 、MOEBIUS集群
多活的两种模式也是从第二带架构的演变
oracle rac 把双机热备的辅助节点变的可以访问,关键点数据在多节点内存中的调配Microsoft awo、Moebius 则是把镜像的辅助节点变的可以访问,关键点数据多节点同步
这样横向扩展来分担压力,并且可以在业务上进行分离。
4.分布式架构
分布式架构真的不知道从何说起,概念太大,每个人理解的都不一样,只能意会不能言传:
比如说一份数据分开存成多份
比如说拆分,水平拆分、垂直拆分、分库、分表、分业务
比如说....
其实说到底就是在第三代横向扩展也无法满足的情况下,继续“拆”,根据不同需求各种“拆”,拆到什么样呢?大家都知道可以说最慢的环节在数据库,传统的做法复杂语句,大存储过程运行非常慢,那我们就把这些拆到表数据量足够小、语句足够简单、业务粒度小、访问压力尽量的小!
这样细化的设计一切为业务服务,也是精细化设计产物,但这也存在一个问题,传统企业在缺少高端人才,人力的情况下根本无法做到。
现在的互联网公司为业务的需要同时对IT团队的大力建设,这是传统企业根本无法达到的。
当然如果有第五代那也许可以说是云,未来业务一切的技术都是云端,云端看不见摸不到,传统行业人回归业务,而IT 建设与管理也必然由专业的人做专业的事儿。
个人总结的架构演变,主架构演变不包含其他辅助技术,仅供参考
其他技术漫谈
在这四代架构之间也有很多技术出现,主要以数据复制、存储同步为代表,如DG、OGG、
LOGSHIPPING、Replication等等,这些都是不同场景下的数据复制,让一个副本变成多个,基本目的在于副本读或者本/异灾备,而这些技术也在不同的场景中扮演这重要的角色,每种技术都有自己的优缺点,不能一概而论。
当然这里面还包含现在所谓的虚拟化、超融合、存储双活,这些技术首先不是数据库本身技术,在很多企业所谓数据库的高可用中扮演着擦边球的角色,虚拟化、超融合、存储双活都有自己适用的场景,而说到数据库的架构,这些方案只是基础架构层面。
如何选架构
▪选架构
首先你该选的是几代架构?
四代架构是按照业务不断细分,以冗余和拆分、细化为主线大体过程
二代冗余
三代粗拆分
四代细拆分
当然这是只是大概的意思,实际中拆分的场景,条件,扩展性一系列复杂的过程。
我曾经无数次遇到几十G的库几百并发的应用就要规划分片,领导最求高大上,底下技术人员叫苦。
▪构建
构建中主要是对建构的细节了解和熟练,这和企业的人员配置有很大的关系,传统企业中很多在架构方案中选择第三方产品?这是为什么,构建需要专业的人,而企业最少的就是这部分人,而维护管理,责任划分也是不得不考虑的事情。
当然架构越复杂投入的经历也就越大,这也不是一个架构师可以主导的事情。
▪维护
维护才是关键,业务变动后的灵活性、压力下的扩展性、出问题的排查、技术力量的支持,一系列漫长的过程开始了.....
总结
架构方案是几代不重要,重要的是适合自己的业务,保证稳定、安全、高效、持续,单机适合简单业务,没有那么高的安全性、连续性依然可以,双机热备可以保障基本的高可用,节点多活的集群适合业务压力较大简单粗暴的分离和压力分担,至于分布式如果企业有能力有资源,业务压力庞大自然会考虑,但在我接触的客户中太多认为自己业务只能通过分布式方案构建,但是其实只是简单优化+三代多活,读写分离负载均衡即可满足。
所以根据自己业务评估最为重要,一个好的架构规划,不但解决现有问题节省成本,更会避免步子太大激进带来的不必要损失。