返回首页
B2B电商平台二次清算技术方案
发表时间:2019-12-21 阅读:3772
B2B2C商城系统
Java商城
电商系统
B2B价格平台目前不仅仅支持的价格类型(级别价、阶梯价、协议价、VIP价、一口价、市场价、零售价、批发价),此外还支持:区域价、区域级别价、区域阶梯价等价格类型;平台支撑了各大业务线:分销、大客户等.

一、B2B平台清算目标:

能快四支撑各类B端价格业务, 减少新业务接入的研发成本和周期, 搭建拥有B 类自身业务特色的统一平台, 并对外提供统一的B类价格业务。

B2B价格平台目前不仅仅支持的价格类型(级别价、阶梯价、协议价、VIP价、一口价、市场价、零售价、批发价),此外还支持:区域价、区域级别价、区域阶梯价等价格类型;平台支撑了大业务线:分销、大客户.

二、平台建设-架构

平台分别由CBI(价格服务中心)、SYNC(异步组件)、SVR(平台服务)、DAL(数据访问层)、RPC(外部服务依赖层)、数据持久(储存层)六大模块组成。

· 数据持久层:数据库采用Mysql,由于数据量大,借助公司Gum(弹性数据库)实现分库存储和查询。由于价格接口访问量大,接口效应时间和可用率和并发性要求高,数据查询将不直接查询数据库,通过缓存实现。缓存分为两种:本地缓存Ehcache和分布式缓存Redis,其中Redis使用公司统一缓存服务Jimdb,减少维护成本,查询服务首先查询本地缓存,未命中则查询redis缓存。为了解决分库后,批量价格查询跨库问题,引入Es集群。数据库与缓存(EhcacheRedis)、ES集群、Hbase间数据同步使用BinLake管道减少数据延迟。Hbase集群用于记录价格变化历史归档信息。

· DAL(数据访问层):价格服务中心与数据层间的通讯管道,提供统一的数据访问服务。为了满足未来价格数据的增量,价格底层数据采用分库,根据业务路由字段访问具体的数据库。

· RPC(外部服务依赖层):负责与外部依赖接口交互,如:主站仓报价、legendshop商城平台价、POP价格、B2B任务引擎、返利系统等。

· SVR(平台服务):负责完成平台服务组装。

· CBI(价格服务中心):由publish服务、pick服务、异步组件组成。其中:

· Publish服务:支持价格发布服务(写服务),包括:价格设置、价格清零、价格限量(数量增、减)等。

· Pick查询服务:统一价格查询服务,经过流程编排计算、数据格式转换返回指定价格类型数据。流程编排,针对于不同大客户的合同类型(折扣价、实时价、legendshop商城平台价、稳定协议价、较低协议价、较低实时价)计算、组合出不同的价格。

· Publish服务、pick服务独立部署,避免读、写服务间互相影响。

价格服务中心的接口需提供JSFHTTPS两种不同的调用方式,以此便于适应不同的外部调用场景。

· SYNC(异步组件):由MQWorker组成,其中:

· MQ组件。负责MQ的接收、发送。接收的MQ,如:POP价格变化MQ(新通路POP商品)、legendshop商城平台促销价格变化MQ(大客户),平台价格变化MQ发送;

· Worker组件。完成历史数据归档、缓存同步、数据清写和纠正;由B2B任务引擎执行统一调度;

上图流程展示了整个平台的数据流向,平台B2B-PRICE-SYNC接收到Binlake变更消息后,调用B2B-PRICE-SVRB2B-PRICE-DAL服务。B2B-PRICE-DAL层将开启多线程分别完成对异步数据源JimdbHbaseEs集群的异步写,如果Jimdb集群写成功则,发送MQ消息通知Ehcache集群进行数据更新,仅当JimdbHbaseEs集群全部写成功后,再由B2B-PRICE-SYNC对外统一发送价格平台变更MQ消息通知外部系统。如果B2B-PRICE-SYNC调用底层重试3次(保持幂等性)失败,则把数据写入任务引擎,由引擎调度延迟重试。

平台建设中接入了公司的Binlake系统,下面简单介绍下组成Binlake系统的三大服务组件:

· Wave服务 Wave服务完成实际的数据库Binary Log的持续采集、管理和分发写入到下游的消息发布和订阅系统中。在BinLake集群中会存在NWave服务,这些Wave服务共同组成一个无状态集群。

· Tower服务 Tower服务是整个BinLake的管理中心,提供BinLake接入服务的申请、完成Wave服务、数据源、接入应用的管理。

· Judge服务

Judge服务主要完成两个功能:Wave节点监控信息采集和loadBalance决策。

ZooKeeper

BinLake使用zookeeper服务进行Wave无状态集群的管理、状态同步和消息通知等。

上图左侧是通过binlake团队提供的工具包解析后的Binlake消息体内容,其中EntryMessage代表一条消息,rowDatas代表Mysql表中变更的行记录(一条消息中可以包含多条记录)。消息体中的EntryType取值:TRANSACTIONBEGINTRANSACTIONENDROWDATAHEARTBEATbinlake内部使用),EventType取值:INSERTUPDATE DELETECREATEALTERERASEQUERYTRUNCATERENAMECINDEXDINDEX

当平台接收到Binlake消息后,将对比消息数据与缓存数据的版本号,如果消息数据版本号大于、等于缓存中数据版本号,则使用消息数据更新JimdbEsHbase集群数据;否则视消息数据为过期数据丢弃(详见上方左图)。一个系统或平台,都不应该完全依赖外部系统,应该有自己的降级方案。当Binlake宕机后,平台分别可以执行MQ降级方案、接口降级方案,以此确保系统不受Binlake宕机影响(详见上方右图)。

价格平台除了发送MQ消息外,还接收外部的MQ消息,详见上图。平台在处理接收到的消息时,为了防止因网络堵塞、系统多实例并发处理速度等因数造成数据错误,在接收到SKU价格变更消息时,首先使用分布式锁对SKU进行加锁,然后调用相应价格接口查询价格,最后与库中数据对比版本号并更新数据,并释放锁。

三、平台建设

平台建设中尝试了公司新的技术、服务、与工具,如JED(GUM)BinlakeJDOS等,节省公司资源、提升了研发效率。

四、经验教训

平台建设中难免会踩到一些坑,分享给大家、希望各位在以后的工作中切勿重蹈覆辙。

1、去掉非必要的参数验证,以此提升性能;

2、尽量减少调用链路长度,节约网络开销;

3、服务接口出、入参数数量尽可能少,减少数据网络传输量,增加系统吞吐量;

4、尽可能储存压缩后的数据,节约储存空间;

5、利用mdc记录日志,系统各层间线程唯一编号(业务请求唯一编号)可采取自顶向下、或自底向上逐级传递,可根据业务场景灵活选择;业务请求唯一编号,便于排查线上问题,提升排查问题效率;

6、系统中,应该尽量配置各种开关,用于接口的升降级、配置参数的动态修改、日志打印级别的动态调整;

7、引入自动化测试工具提升测试效率,节约人力成本。

8、兜底方案。系统上线前,应考虑各种兜底方案,确保系统上线后,即使有问题也做到业务零感知;

经过上述的介绍相信大家对于B2B价格平台有初步的了解,但肯定也会产生各种疑问,欢迎大家来一起www.legendshop.cn讨论。如果文中有不足的地方,请您帮助作者修正避免误导听众,在此先行谢过。

文章来源:广州朗尊软件科技有限公司
【朗尊软件】是中国领先的专业电商平台提供商,秉承着“专业塑造传奇,用心成就电商”的理念, 专注于为用户提供一体化的电商解决方案及服务,搭建垂直行业垂直电商一站式营销管理工具。目前拥有自主研发的电子商务平台产品:SAAS云平台、微商城小程序、云商城、云小店、代理商平台、B2B2C商城、B2B大宗交易平台、跨境电商服务、大数据平台搭建、微服务架构等产品、各种定制商城及解决方案。
网站声明:以上内容为朗尊软件官方网站的原创文章,如需转载,请注明出处,谢谢合作!
上一篇: “绿之选 全球之约”暨农业产业云商交易平台启动
下一篇: 大宗交易B2B清分合规5种模式
相关文章
区块链原理详解 - 朗尊软件,企业级电商平台提供商
微服务架构优势和劣势
微服务架构为什么要用spring cloud
开源商城系统介绍企业写开源多用户商城 - 朗尊软件,企业级电商平台提供商
供应链金融浅析 - 朗尊软件,企业级电商平台提供商
电商头条新闻
1
工业行业 | 工业产品B2B跨境电商解决方案
2
私域电商如何赶上智能热潮?
3
三一全球购 | B2B2C电商平台+员工福利平台的定制解决方案
4
跨境电商 | B2B2C跨境电商系统解决方案
5
社群团购系统——社区流量与社交电商融合
热门标签
小羊直播
供应链
电商系统
Java商城
电商平台
B2B商城
跨境电商
商城平台
新零售系统
云商城系统
B2B2C商城系统
多用户商城
微服务商城
供应链商城
商城系统
电商直播系统
私域电商
大宗交易平台
数字化转型
直播供应链
全渠道零售
O2O商城系统
java开源商城
SAAS云平台
B2C商城系统
SaaS系统
生鲜电商
用户标签
APP
S2B
MRO平台
微信小程序商城
移动商城
社区电商
营销活动
新零售电商
分销系统
门店管理
分销体系
社交电商
直播电商
数字化
客服系统
社群电商
引爆流量
供应链金融
员工福利平台
工会福利商城
企业智慧采购平台
机械设备
抖音电商
数智化
数字化
区块链
S2B2C
B2B2B
订单融资
数字中台
VUE
用户标签
仓单融资
大数据
应收账款
集采代采
医药电商
推荐阅读
公告:【微信小程序备案】9月1日起,微信小程序需完成备案才可上架!
工业行业 | 工业产品B2B跨境电商解决方案
私域电商如何赶上智能热潮?
三一全球购 | B2B2C电商平台+员工福利平台的定制解决方案
跨境电商 | B2B2C跨境电商系统解决方案