高可用、高性能、可扩展、可伸缩网站架构--数据存储和数据流通

来源:互联网 发布:数据传送业务 编辑:程序博客网 时间:2024/03/29 20:35

在网站架构中,数据层面的数据存储和数据流通时其中重要的一部分。

 

一、常见数据存储架构

      1)集中式存储:将所有数据存储在一台数据库上,数据库只有一个instance。服务的稳定性由昂贵的硬件来保证。

      2)oracle Rac存储:基于硬件和文件系统的可靠性远大于数据库实例的可靠性的原理,oracle采用rac(real application clusters)来提供高可靠服务。rac采用一个物理数据库,数据库启动多个Instance。每个instance都有自己的SGA ;每个instance都有自己的background process ;每个instance都有自己的redo logs ;每个instance都有自己的undo表空间 ;每个instance都共享一份datafiles和controlfiles。

      3)mysql分库存储:在数据和访问量达到一定规模后,数据库切分成为常见的解决方案。在数据库切分方案中,mysql数据库相比于oracle具有天然的优势。mysql采用replication的方式(share noting)实现数据共享;而oracle通过share everthing的方式来实现,对硬件的要求交高。

      在各中方案中,每种方式都有各自的优点,一般情况下,集中式存储适合于有复杂查询,复杂join,对事物要求较高的OLTP系统;mysql分库存储实用于查询简单,数据量大,查询压力大的系统(web应用中,80%以上的压力在查询上)。

 

二、成熟的大型网站数据存储架构

      在成熟的网站中,可以同时实用缓存,数据库和搜索引擎来解决数据存储和大规模并发访问的问题。为了解决数据对应用透明的问题,可以在三种方式之上提供一个代理层,来隐藏数据层对应用层的实现细节。

      1)数据库:

      2)缓存:缓存是提高应用查询性能的重要方式。在使用缓存是主要考虑缓存命中率和缓存失效时带来的巨大访问压力问题。

      3)搜索引擎:主要应用在具有文本搜索应用的网站中。

 

三、数据同步

      在具体的应用中,会按功能对应用进行垂直切分,不同的应用之间需要交换数据;数据分析系统(OLAP)依赖于应用系统(OLTP)产生的数据进行分析。这就存在数据同步和数据共享的问题。常见的数据同步和交互方式:

      1) DBLINK

      2) SQL直接推送(速度较慢)

      3) 文件同步(实时日志解析数据同步)

      4) 接口调用(同步和异步)

      在各种同步方式中,都需要解决以下问题:

      1) 数据同步的通信机制问题

      2) 数据同步对应用的压力问题

      3) 数据同步性能问题

      对异步接口调用,还需要解决顺序问题,消息过期问题,数据一致性问题,异常情况处理问题等等。

原创粉丝点击