通常情况下,业务系统产生的大量日志都是集中存储处理的。集中存储是指有一个由大型主机或多台主机组成的中心节点,数据集中存储在这个中心节点上,整个系统的所有业务单元都集中部署在这个中心节点上。数据计算几乎完全依赖于一台中大型中央计算机的处理能力。系统的所有功能都由它集中处理。在集中式系统中,每个终端或客户端只负责数据的输入和输出,而数据的存储和控制则完全交给主机。集中式存储最大的特点就是部署结构简单。在目前的环境下,我们需要面对以下考验:
可靠性:单实例,无数据库灾备。在不同的地方建立数据库灾备需要额外的成本。无论是主从架构、负载均衡还是自动容灾,传统的自建数据库都需要自己实现。
系统安全:需要抵御DDoS攻击。传统的自建数据库需要自己实施,实施成本高。同时也需要自行修复数据库安全漏洞。
硬件成本:为了部署数据库,开发人员需要购买昂贵的数据库服务器。一次性硬件成本很高。而且考虑到硬件损耗,后期还会有硬件维修更换的费用。
运维成本:硬件、操作系统、数据库软件的维护需要大量的人力物力。
可扩展性:传统自建数据库使用物理硬盘作为存储空间,受限于单个磁盘的容量,不支持灵活升级。也很难达到增加或删除节点的目的。如果一个数据库超过了这个存储限制,就需要运营和开发人员一起对数据进行归档,以减少数据库容量。
传统的数据库或仓库产品面临着数据存储、检出、扩展困难、成本高、无数据灾备等痛点。因此,如何升级整个传统数据库是企业面临的关键问题之一。
一方面,传统数据库无法满足互联网企业的新需求。由于互联网业务的快速扩张,企业需要实时处理海量数据,并发访问量非常大。传统数据库基于专用服务器和高端存储形成共享存储环境,设备昂贵,性能和可扩展性极其有限,无法满足互联网行业对高并发、实时在线数据库的需求。
另一方面,传统数据库无法满足云计算技术的新要求。依靠技术积累,云计算公司启动了从IOE架构到廉价PC服务器技术的转型,降低了IT服务支出,倡导以软件为中心的架构演进,降低了数据库维护和升级的风险。传统数据库环境是集中在一个地方的高稳定、高可靠、高可用的高端企业级设备,制约了云计算企业未来的业务发展,增加了长期运营成本。
传统数据存储面临以下四个问题: 无法处理每秒数万次的读写请求,硬盘IO此时也会成为性能瓶颈。
表中存储的记录数量有限,横向可扩展性有限,纵向数据承载能力也有限。面对海量数据,势必涉及子数据库、子表,维护难度大。用大数据查询SQL的效率极低。当数据量达到一定程度时,查询时间会呈指数级增长。
难以横向扩展,不能简单通过增加硬件和服务节点来提升系统性能。
对于需要24小时不间断服务的网站,升级扩容数据库会很麻烦,往往需要停机维护和数据迁移。为了避免服务中断,如果网站使用服务器集群,根据集群策略,要相应考虑主从一致性、集群可扩展性等一系列问题。