商城系统产品架构规划指南

一.介绍

现在的信息时代,交易都在互联网化, 电子商务场景需要一套稳定灵活的系统支撑,那一套稳定灵活的电子商务系统应至少具备如下这些基础能力

  • 多终端支撑能力

  • 统一支付能力

  • 统一订单能力

  • 统一商品管理能力

  • 统一多渠道管理能力

  • 快速营销落地能力

  • 统一信息分析能力

  • 系统功能扩展能力

Mob-ShopSDK依托于此,为用户提供APP+WEB后台管理一站式的电子商务系统解决方案,提供“开箱即用”的强大功能,帮助开发者减少大量的开发工作,为用户提供优质的互联网产品和服务。

二.ShopSDK 应用架构

商城系统产品架构规划指南

架构图分为五个部分:接口模块、基础支撑模块、数据模块、第三方支持模块,监控模块。

核心-基础支撑模块,是按照商品的业务流转进行划分,构建不同的组件服务,相互间不同规则的串联运行支撑电商服务的运转.

核心-组件服务:

(1)商品中心:主要管理SKU( 最小库存单位)、SPU(标准化产品单元)、属性(关键属性、非关键属性、销售属性)、类目品牌、价格等有关商品的数据。

(2)订单中心:管理订单类型、订单状态,收集关于商品、优惠、用户、收货信息、支付信息等一系列的订单实时数据,进行库存更新、订单下发等一系列动作。

(3)支付中心:已集成Mob-PaySDK服务,记录支付信息(对应订单号、支付金额等),支付对账,用户无需因支付功能进行二次开发.同时已开放接口。用户可以根据自己的需求, 选择适合自己的支付方式.

(4)促销中心:主要管理活动相关,优惠券、满减、专场活动、促销等。促销工具的开发对电商尤其重要。ShopSDK通过商品-标签,优惠券-标签关系设定,根据标签实现针对于商品级别组合优惠活动.

(5)评价中心:管理商品评价和用户反馈,进行回复内容管理,实现针对于敏感内容的过滤。

(6)运营中心:提供订单、销量相关日,周,月不同时间维度报表统计以及下载,方便用户了解运营情况,及时调整运营策略.后期会提供更细粒度,更多维度的运营数据统计,更好的协助用户.

以下为Mob-ShopSDK主业务流程图:

商城系统产品架构规划指南

三.模块设计

以商品模块为例:

模块介绍:

商品模块是一个展示商品基本信息、库存等详情的系统,是商品购买的入口,也是电商系统的入口。在访问量上它是电商平台中访问量最大的系统之一,在业务上它与周边系统的关系是高耦合,这就对系统设计提出更多的要求。

业务特点:

重点在于数据展示页面信息丰富,如:商品详情、商家列表等.

部分数据时效要求高,如:价格、库存等

访问频率高.

设计:

商品模块在设计上分成SDK-INNER二层结构:

SDK端:负责业务逻辑处理,提供数据给前台,同时还会对外部系统提供服务,针对于访问频率高的查询接口,基于elasticsearch进行查询操作,降低DB压力,通过队列事务机制实现不同数据源之间的数据同步。

INNER端:负责主数据管理,做为数据管理层处理商品主数据、参数、品牌、供应商等,同时部分内容开放给运营进行维护、管理和异常处理等。(这次篇幅有限,简单介绍下SHOP-SDK商品模块的设计,后期会陆续分享shop-sdk其他模块的设计)

四. ShopSdk架构分析

1、应用部署

对于电商而言,领域有用户、商品、订单、评论、支付业务等等,不同的领域提供不同的服务,为了提高模块服务的可用性,一个模块部署在多个节点做冗余,并自动进行负载转发和失效转移;

2、搜索

Shop-SDK商品搜索引擎基于分布式实时引擎elasticsearch(ES)。ES构建在开源社区最稳定成熟的索引库lucence上,支持多用户租用,高可用,可水平扩展;并有自动容错和自动伸缩的机制,并且同时实现es与mysql无缝集成.数据实时同步.

3、存储

A. 数据库:

1)数据库用Mysql,采用双主模式,注意:主从不在同一个物理机上。主从结构保证在主库出现故障比如宕机自动切换到从库。通过LVS做负载均衡做到高可用,提高吞吐量

2)基于Mycat组件实现多租户管理,动态创建数据库实例,通过数据库级别的隔离机制保证用户的数据隔离,同时支持横向扩展.后期将支持分表,分区操作. 为应用提供更强壮的数据库服务

B. redis存储:

1)应用层逻辑优先从Reids中获取业务数据,如果Redis中没有,再从DB中获取

2)通过自定义虚拟过期时间以及锁机制解决Redis缓存过期产生的惊群现象

4. 监控:

1)通过自定义dubbo微服务监控中心, 监控服务端服务和客户端调用情况,调用次数,调用日志,方便问题查找.并提供邮件告警功能.保证服务的高可用

(本文只针对于部署,监控,存储方面进行了简单介绍,后期会针对于各个模块进行深入分析)

五.结语

阿里把11.11从光棍节变成狂欢节,到2017年双11达成1682亿的成交额。这体现出了电商的巨大市场需求,也为电商从业者带来了新的机遇和新的挑战。电商系统的复杂性使其中的每一个细节都可以拿出来仔细探究,ShopSDK将致力于为开发者/客户提供“开箱即用”的强大功能, 轻轻松松即可完成一个B2C电子商务的搭建和部署。

文/ Mob 魏鑫

相关推荐