基于MySQL的高性能高可用数据库集群部署方案

 

公司最近在研发电商品7.0产品,重新设计了商城的整体架构。一款产品要满足三高(高性能、高可用、高扩展)的要求,除了优秀的后端架构还得有优秀的数据库部署设计来做支撑。后端架构设计不在此篇博客描述范围内,主要说一下数据库的部署设计。

    数据分类
    整个商城系统可以拆分几大模块:用户、店铺、商品、订单、支付、物流,针对这些模块所存储的数据大致可以分为高价值数据、普通数据,具体根据业务来区分。譬如:订单、支付模块的数据为高价值数据,用户、店铺、商品、物流模块为普通数据。高价值数据严格要求数据强一致性,而普通数据对一致性要求可以稍微第一点儿,因为在数据库层面要求强一致性就必然会牺牲高性能,CAP理论中也阐述了“三选二”原理。普通数据中可能有一部分是热点数据,那么就会要求高性能(高可用)同样也会牺牲部分一致性,为了尽量满足性能会用到一部分缓存和NoSQL数据库来支撑。

    集群部署
    MySQL数据库集群部署方案常用的有两种:PXC方案和Replication方案。这两套方案中PXC方案支持双向数据同步要求强一致性,Replication方案支持单向数据同步(不支持双向数据同步)不要求强一致性。

    数据切分
MySQL数据库单表容量超过5000万性能就会急速下降,需要水平切分数据表了。常用的方案就是业界有名MyCat中间件,根据自定义逻辑表规则切分数据表。

    部署方案
    综上所述,整理了一个能满足以上场景的方案。PXC集群用来做强一致性存储高价值数据,Replication集群则用来支撑高可用存储普通数据,上层用MyCat做一个数据表水平切分,每个分片为一个集群。最终架构图如下:

基于MySQL的高性能高可用数据库集群部署方案_第1张图片

博主地址 ——凤松轩博客 - 一个小小文艺范儿的个人

你可能感兴趣的:(sql)