阅读文章:京东B2B业务架构演变

文章网址:https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247486624&idx=1&sn=1601d21c8a77dca44936f4c7a5be4b32&chksm=fbf7bc4fcc8035591ed2382f0b4ffc3e86e39aa585dcd790baeb16504699e00fb656e4ee0c22&scene=21#wechat_redirect

京东 B2B 业务的定位是让各类型的企业都可以在京东的 B 平台上进行采购、建立采购关系。京东 B2B 的用户群体主要分为 2 类,一类是大 B 用户、另一类是小 B 用户。京东 B 平台需要支持各类型的用户群,因此必须要有自己的业务系统做支撑,比如订单、商品、价格、用户、权限、审核等系统。

京东B平台的发展氛围三个阶段:

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

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

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

业务架构分为3层:(1)业务层:主要是B平台的所有业务线(2)服务层:包含订单、价格、商品、用户等 SOA 服务系统(3)存储层:使用 mysq l数据库进行存储。

第二阶段开发时,这种架构面临了巨大的挑战,主要表现为:(1)开发周期长,无法快速满足业务要求(2)服务之间的相互影响,订单和商品在一个数据库,一个出问题,会影响别的服务(3)系统之间耦合度大

上述的表现反应出业务架构存在以下问题:

(1)服务问题:服务之间零复用性,各个业务线的服务没有抽取共享的服务,其实有80%都是相同的模式,没有抽象。

(2)系统耦合:系统之间的相互调用采用的 jsf 服务,全部是同步调用,调用链路很长,一个环节出问题会导致整个系统都出问题,没有核心服务和非核心服务、没有异步化服务。

(3)公用数据库问题:由于前期是按业务线进行划分,在一个业务线上,核心服务的数据都存储在一个数据库上面。

真武服务问题的改进,可以进行两部拆分。第一步拆分,将各个业务线的服务拆分成小服务。第二步拆分,组合第一步抽取的服务,形成公共服务,以后所有业务线都请求这些公共服务,提高服务的复用性。

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

数据库的改进,解决方案还是进行拆分。第一步,将各个业务系统 SOA 服务的数据,单独存储在自己的数据库,订单有订单专门的数据库、商品有商品专门的数据库,服务之间互相不受影响。第二步,在第一个步拆分后,有的业务数据量单表数量还是很大,需要对表进行拆分,我们采用 jproxy(不支持分表)进行分库,按业务的相关主键 id,进行 hash(id)%count(分库数量),支持水平扩展。

扩展:(1)分布算法方式:ID 区间算法、时间区间(2)热点数据:二次 hash(3)事务:弱化强一致性,采用消息的机制进行交互,实现最终一致性。

(4)垮库查询:分布式查询。

分布式查询,采用的是 elasticSearch 搜索进行支持,简称es。消息同步才用jmq和binlog。如果es集群有问题,采用的方式是备份集群支持服务(数据有延迟风险)。

B2B业务架构经过3次变迁与升级,总结到以下经验:

(1)稳定性原则。以稳定为中心,架构尽可能简单、清晰,不过度设计。

(2)抽象化。应用抽象,数据库抽象,服务抽象。

(3)松耦合。跨域调用异步化,超时时间

(4)拆分。稳定性与非稳定性系统分离,应用和数据的分离。

转载于:https://www.cnblogs.com/t1314/p/11054757.html

京东B2B业务架构演变读后感相关推荐

  1. 京东B2B业务架构演变阅读心得

    京东 B2B 业务的定位是让各类型的企业都可以在京东的 B 平台上进行采购.建立采购关系. 京东 B2B 的用户群体主要分为 2 类,一类是大 B 用户.另一类是小 B 用户.比如联通.移动公司跟京东 ...

  2. 京东数科业务架构全披露,陈生强发布城市操作系统和京东钼媒

    11 月 20 日,在 JDD-2018 京东数字全球探索者大会上,陈生强宣布,京东数字科技(JD Digits)正式成为京东金融的母品牌,这也意味着它的业务架构逐渐明晰,主要下设了京东金融.京东城市 ...

  3. 京东虚拟业务多维订单系统架构设计读后感

    阅读文章:京东虚拟业务多维订单系统架构设计 文章网址:https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247486428& ...

  4. 京东云高可用业务架构建设 | 京东云技术团队

    本文以 2022 年一个实际项目为基础,来演示在京东云上构建高可用业务的整个过程.公有云及私有云客户可通过使用京东云的弹性 IAAS.PAAS 服务,创建高可用.高弹性.高可扩展.高安全的云上业务环境 ...

  5. 荐书丨企业业务架构的发展及与IT架构的关系

    架构君:本文来自<企业级业务架构设计:方法论与实践>一书,作者为付晓岩,本书专注于企业级的业务架构,公众号「架构文摘」获得机械工业出版社华章分社的授权,刊载其中的部分章节--企业业务架构的 ...

  6. 1亿级PV网站架构演变

    作者:叶军 来自:http://www.yejun.cn/?p=1154 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则.本文结 ...

  7. 一文搞懂各种架构(业务架构、应用架构、数据架构...

    01 什么是架构和架构本质 02 架构分层和分类 03 架构的级别 04 应用架构的演进 05 衡量架构的合理性 06 常见架构误区 07 架构知识体系 01 什么是架构和架构本质 在软件行业,对于什 ...

  8. 从100PV到1亿级PV网站架构演变(转)

    http://www.linuxde.net/2013/05/13581.html 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原 ...

  9. [转载]从100PV到1亿级PV网站架构演变

    首页 最新文章 在线课程 业界 开发 IT技术 设计 创业 IT职场 投稿 更多 » - 导航条 -首页最新文章在线课程业界开发- Web前端- Python- Android- iOS- Java- ...

最新文章

  1. View的Touch事件分发(一.初步了解)
  2. 登顶Nature | DeepMind用AI首次实现数学领域重大进展,助力科学家证实两大猜想
  3. Fast Flux技术——本质就是跳板,控制多个机器,同一域名指向极多的IP(TTL修改为0),以逃避追踪...
  4. div在最顶层显示----弹出框效果
  5. 引擎讲解2--主要是MyISAM和InnoDB的区别
  6. python中包的循环导入_具有继承的包中的循环导入依赖项
  7. 常青:小程序音视频能力再升级
  8. c++不是类型安全的语言
  9. 利用matlab提取中心线
  10. linux吉祥物的名字,知道Linux的吉祥物的名字和性别吗
  11. Delphi 之 工具栏组件(TToolBar)
  12. 波音正在对737 Max进行软件升级 改善飞行员培训计划
  13. 大数据各组件环境完整安装
  14. sql server 连接
  15. target is busy / device is busy 设备无法取消挂载问题处理
  16. Linux的目录结构及对应目录下存放的内容
  17. rtl8139 群晖_黑群辉里的虚拟机安装XP系统,没有网卡怎么传入文件?
  18. 2019 年终总结,168 篇,已归类!
  19. python输入一个英文句子、统计并输出单词数_C语言实现输入多行英文句子然后统计单词数和行数,如何输入?我的代码问题在哪里?...
  20. 【转】初探计算机视觉的三个源头、兼谈人工智能

热门文章

  1. RTThread入门
  2. PyTorch学习笔记(11)——论nn.Conv2d中的反向传播实现过程
  3. php utf-8正则匹配汉字,php utf-8编码 正则匹配中文
  4. MTK: ALSA声卡驱动之四:machine和dai_link的作用和实现
  5. 110kV变电站设计
  6. Prism 框架 -含ViewModelLocator
  7. Creo(proe)自定义功能区
  8. Swap 与 Swappiness
  9. TXAA,MSAA,SMAA,FXAA
  10. PyMol - script