关于商家数据中台设计思考与总结

序言

最近入职了一家新的公司,公司要启动一个商品数据中台项目,需要与老板汇报一个架构设计,在设计过程中,有所心得,在此记录一下,本文不会和大佬们的中台架构文章一样,大谈概念与理论,本文主要还是以功能设计与落地过程为主。如有不足或错误欢迎指正🙏

项目背景

  1. 目前公司已有两条业务先建立了商家及商品的标准的电商化的数据体系,包括服务商,商家,商品,类目,规格,套餐等。
  2. 新的业务线同样需要此数据体系。

目前痛点

  1. 已有的两条业务线的商家商品数据体系融在一个项目当中,需求迭代的影响范围,项目上线的部署复杂度,上线后需要验证的功能范围,发生问题排查的复杂度,难度都非常的大,显然整个大项目已显得十分的臃肿。
  2. 新业务线仍需要标准化的电商商品数据体系,如果要再次的建设,无疑是重复造轮子,烟囱式开发,浪费人力。

解决方案

构建一套,以商家数据,商品数据,套餐数据,为主体的标准化的电商数据体系结构中台,将数据层与业务进行解藕,提升业务的响应效率,降低企业数据维护成本,沉淀数据化产品,为企业发展做好决策与分析。

商品数据中台

全景图

功能设计

 

技术难点

对于数据中台初期建设来讲,需要解决的问题比较多,比如规则的制定,服务的编排,但是本人认为最突出的两个问题。

  • 扩展问题

        如何解决不同业务方的飞速发展所带来的新的数据属性的存取。

  • 效率问题

        如何解决快速响应业务方调用的快速应答,快速应答包括数据的存与读两个过程,如果中台处理时间过长的话,那再加上业务系统的业务逻辑规则,整个流程的操作耗时对用户来讲将是难以接受的。

高扩展

例:创建商家门店接口,请求对象为:CreateStoreRequest类图如下:

中台只提供了基础的属性,但是如果以到家门店为力,需要保存门店的经纬度,详细地址,门店电话等到店的门店特有的数据属性,如下图:

这时该如何进行灵活的扩展呢?

如果客户端创建了新的对象,继承基类,在子类中定义新的属性,调用服务端接口时将子类传递给方法;这种方式服务端不引用客户端的对象,在反序列化时,扩展的属性将会丢失,无法获取。

如果在每一个请求信息都加一个Map,存储扩展信息,那么是可以实现灵活扩展,但是可读性将会无法保障。

经分析与调研后,中台对外提供出了一套SDK,SDK中提供了参数解析器,在请求时,客户端可调用SDK的数据操作方法,传递自定义的子类,SDK中的解析器会对请求参数进行解析,将扩展的字段与数值采用反射的方式进行处理,将解析出来的内容存储到key-value的容器当中,调用接口,中台接收到数据后,会将扩展的属性信息,存储到属性表中。

  • 请求流程

 

在查询功能中,数据由中台返回到SDK时,SDK会对响应参数进行解析,将属性信息设置到子类VO对象的属性字段中。VO图:

 

  • 响应流程

采用这种反射的方式,做到中台对外最终的高扩展。

高效率

在本次中台的建设过程中,在数据的操作,采用了读写分离的方式,写动作,先写入Mysql,写入成功后,将数据同步至ES当中,如失败在用:重试+消息通知的方式,达到数据最终的一致性,实现提高检索的效率的目的。为解决ES刷盘的延迟问题,写入ES同时会写入redis中一份;在读的时候会先读ES,如果ES中无数据,则读取redis,如redis无数据则读数据库,并返回,同步数据至redis。

  • 数据同步流程

 总结

在架构设计中,不只是功能的简单罗列,更加应该关注的是业务底层的逻辑关系,未来的走势;更不应该过度的设计,要从实际业务场景出发,设计一套符合当前业务场景,满足当前业务需求,支撑未来扩展的架构即可。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于大中台来讲,现在并没有十分严格的定义,每个企业对其的理解都是不同的,有的在技术上使用大中台模式,有的在业务上使用大中台模式,有的将两者相结合。“大中台,小前台”的机制最初阿里提出的时候,主要应用于O2O线上线下协同、电商等场景,对于电商来说,市场环境是瞬息万变的,而前台是主要的一线业务,这时就需要一个强大的技术中台提供快速设计方法和系统性后端服务,去应对市场变化,灵活快速的做出应对策略。 技术中台从技术角度出发,数据中台从业务数据角度出发,业务中台站在企业全局角度出发,从整体战略、业务支撑、连接用户、业务创新等方面进行统筹规划,由基础中台、技术中台数据中台L合支撑来建设业务中台。 本套中台案例基于真实工业界业务讲解,将多种经过工业界验证的成熟技术解决方案呈现给大家,本套课程拒绝枯燥的理论,全程代码实操,通过项目驱动的方式,让大家能够真实体验中台工业界开发过程,帮助大家建立中台思维,学习本套课程全部内容你完全可以自主开发一套高性能高可用高扩展的中台系统。本套案例集后端+前台+测试+运维一体,多方位的带你熟悉全过程。本课程将带大家实现一个真实的工业界中台项目,该项目是基于真实的知名互联网企业项目讲解,本课程将分为4个阶段: 第一阶段:会实现中台系统的大部分核心服务,包括:会员中心,商品中心,交易中心,商家中心,支付中心,友凡商城等等。 第二阶段:进一步完善中台系统的核心服务以及优化,包括:营销中心,搜索中心,店铺中心,缓存优化,数据库优化等等。 第三阶段:进一步优化以及完善产品服务,包括:前台系统,中台系统,友凡商城 友凡生鲜,友凡超市等等。 第四阶段:项目收尾阶段以及运维阶段,包括:压力测试,系统维护,系统部署,虚拟化方案,测试方案等等。 本课程包含的技术: IDEA集成开发工具  SpringBoot 2.0.8.RELEASE SpringCloud Finchley.SR2 Thymeleaf(模板引擎技术)  支付宝支付 MyCat、MySQL、Druid  持续集成解决方案(Jenkins) 认证解决方案(JWT) 网关解决方案(Zuul) 负载均衡解决方案(Ribbon) 分布式事务+多线程+事件驱动 MyBatis+Redis+Quartz Ehcache+Hystrix Nginx(Web服务器) Restful AOP技术 性能压力测试Jemter  VUE+jQuery+Ajax+NodeJS VUE+Element-UI 容器部署Docker Kubertenes Lucene、ElasticSearch(搜索) 设计模式、RabbitMQ Swagger2 文档生成工具 人工智能(RNN、LSTM)多语言开发(Python、Django)课程亮点: 1.与企业无缝对接、工业界真实业务场景 2.集后端+前台+测试+运维一体,多面学习技术链 3.多语言协调开发,熟悉语言应用场景4.支持项目快速迭代和开发 5.引入人工智能智能客服系统 6.使用微服务技术栈+前后端分离构建项目 7.引入全新的设计理念 8.全链路性能压力测试 9.分布式事务解决方案 10.事件驱动设计解决方案 11.多线程技术+设计模式的实战应用 12.分布式架构下实现分布式定时调度 13.集成MyBatis实现多数据源路由实战 14.集成SpringCloud实现统一整合方案 15 Kubernetes+Docker容器化部署和管理 16.大型系统分布式部署方案 17.高性能系统(支撑海量数据) 18.高并发下的服务降级、限流实战 19.实现高并发请求和实现高可用架构解决方案 20.全程代码实操,提供全部代码和资料 21.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值