京东B2B业务架构演变

时间:2022-06-06 13:36:26

京东 B2B 业务的定位是让各类型的企业都可以在京东的 B 平台上进行采购、建立采购关系。

京东 B2B 的用户群体主要分为 2 类,一类是大 B 用户、另一类是小 B 用户。比如联通、移动公司跟京东建立的采购关系,就是 B 平台的大 B 用户;如果有一家小超市需要在京东 B 平台上进行采购,那么它就是 B 平台的小 B 用户。

京东 B 平台需要支持各类型的用户群,因此必须要有自己的业务系统做支撑,比如订单、商品、价格、用户、权限、审核等系统。

京东 B 平台的发展分为3个阶段:

1)第一阶段(2014年)

B2B 浪潮开始兴起,京东在2014年与联通公司达成合作,意味着京东正式迈入B2B时代的大 B 行业。

2)第二阶段(2015-2016年)

农村电商开始兴起,线下门店积极顺应互联网的发展趋势,将传统的零售搬到了线上;在这个阶段,京东成立新通路事业部开展此业务,从此京东正式迈入了小 B 行业。

3)第三阶段(2017年至今)

在之前大、小 B 业务的基础上,京东的 B2B 业务在2017年得到快速发展,完美应对这个阶段产生的种种挑战,并发量、数据量均成几十倍的增长。

业务架构 1.0 分为 3 层:

  • 业务层:主要是 B 平台的所有业务线

  • 服务层:包含订单、价格、商品、用户等 SOA 服务系统

  • 存储层:使用 mysq l数据库进行存储

服务问题改进

京东B2B业务架构演变

系统耦合改进

系统耦合的问题,通过引入 jmq 消息中间件进行解决。消息无序的问题,采用乐观锁进行解决,主要是依靠数据的版本对比来解决。

数据库改进

数据公用的问题,解决方案还是进行拆分:

  • 第一步,将各个业务系统 SOA 服务的数据,单独存储在自己的数据库,订单有订单专门的数据库、商品有商品专门的数据库,服务之间互相不受影响。

  • 第二步,在第一个步拆分后,有的业务数据量单表数量还是很大,需要对表进行拆分,我们采用 jproxy(不支持分表)进行分库,按业务的相关主键 id,进行 hash(id)%count(分库数量),支持水平扩展

分布式搜索

京东B2B业务架构演变