文章目录

  • 前言
  • 京东发展历程
  • 京东商城技术的演进
  • 京东自研技术
    • 京东前端框架Nerv
    • 京东后端架构
      • 京东的服务框架
    • 分布式数据库StarDB
    • 京东云
    • 移动端
    • Flutter在京东的实践
    • 大数据
    • 咚咚架构
    • ShardingSphere
  • 京东人物谱
  • 参考

“京东可以高速发展到今天的规模的原因,其中最核心的是坚持“倒三角”战略:建立出色的团队;打造财务、物流和技术三大核心系统;降低成本、提升效率;为用户带来最佳体验。在《京东技术解密》一书中,大家会看到技术驱动的力量,这也是京东第一次全面展示自己的技术体系。” –刘强东


京东将整个倒三角形分为四个横向,最底层是“团队”,倒数第二层是“物流系统、IT系统及财务系统”,倒数第三层是“成本和效率”,最上面一层是“产品、价格和服务”。这四部分对京东的意义分别是基础、供应链、关键KPI以及用户体验。

前言

京东的崛起,就是一部草根长成大树的历史,是中国电子商务从零摸索出一条自己道路的历史。京东的每一步,都走得很实在,用户需要什么,就去解决什么。

京东发展历程

  • 1998年----京东成立
  • 2001年----成为光磁产品首屈一指的代理商
  • 2004年----多媒体网正式开通
  • 2007年----正式更名为京东商城
  • 2010年----京东商城团购频道正式上线
  • 2012年----京东商城的火车票预订频道上线
  • 2012年2月,京东商城酒店预订业务上线
  • 2013年2月,京东完成新一轮7亿美元融资,投资方包括加拿大安大略教师退休基金和沙特亿万富翁阿尔瓦利德王子控股的王国控股集团以及公司- -些主要股东跟投
  • 2013年3月30日,京东,去商城化,全面改名为京东,随后更换LOGO。2013年3月30日,启用http://JD.COM域名,并将360buy的域名切换至JD.此外,“京东商城”这一官方名称将被缩减为“京东"。
  • 2013年4月23日,京东宣布注册用户正式突破1亿。
  • 2013年7月30日,京东CEO刘强东表示,京东已经成立了金融集团。
  • 2014年4月2日,京东集团正式进行分拆,其中包括两个子集团、- 一个子公司和一个事业部,涉及金融、拍拍及海外业务。具体的分拆方式是:京东集团下设京东商城集团、金融集团、子公司拍拍网和海外事业部,京东创始人刘强东会担任京东集团CEO。
  • 2014年5月22日上午9点,京东集团在美国纳斯达克挂牌上市(股票代码: JD)。美国也迎来了中国最大的赴美IPO。
  • 2014年11月,京东集团宣布大家电“京东帮服务店"在河北省赵县正式开业。
  • 2015年1月9日晚间,京东(Nasdaq:JD)、 易车网(NYSE:BITA) 和腾讯(SEHK: 00700)联合宣布,三方已达成最终协议,京东和腾讯以现金和独家资源的形式对易车网投资约13亿美元。
  • 2015年10月17日,腾讯集团与京东集团在京联合宜布推出全新战略合作项目-京腾计划。
  • 2015年10月10日,京东集团发布公告称,因C2C (个人对消费者)模式当前监管难度较大,无法杜绝假冒伪劣商品,决定到12月31日时停止提供其C2C模式(拍拍网)的电子商务平台服务,并在三个月的过渡期后将其彻底关闭。

京东商城技术的演进

京东商城网站经历了ASP、.NET、Java三个阶段。

  • 2003年,刘强东着手建设自己的网站,开发人员为曹鹏和另一个程序员,技术为ASP。因为ASP简单,上手快。把网站建起来,把商品摆起来,把订单下下来,这就是当时网站要解决的问题,至于用什么技术去实现,那是其次的。2003年,从外部购买了一套ASP在线商城软件,并在此基础上逐步开发维护,形成了第一代网站“京东多媒体网”。
  • 2004~2006年,技术人员一共5人左右。2005年,刘强东力排众议,关闭了所有线下12家门店,专攻电子商务。到2007年6月,日订单量已突破3000单,从那时起,我就知道有个网站叫京东,也开始在上面买些简单的数码产品。
  • 2007年8月,第一笔风投到位,刘强东可以大展拳脚了。
  • 2008年,开始从ASP转向.Net。2008年夏天,Donny带着一帮人,在通州一个高档小区的一座三层别墅里,十来个人,进行了三个多月的封闭开发,完成了向.Net的升级改造。日子虽苦,但一日三餐有专门做饭的阿姨好饭好菜伺候,倒也安逸自在。唯独晚上蚊虫袭来,搅得一帘幽梦。
  • 新版网站一直运行到2010年,订单量从日均几千单增长到十几万单,实现了飞跃式的发展。
  • 2010年,POP平台上线
  • 2012年5月,Java版交易系统上线,标志着.NET向Java架构的转移;主要原因是服务端程序已经朝Linux平台迁移的大势所趋,加上Windows和及开发工具Visual Studio的成本过高。同时,所有系统按SOA架构设计,对外提供服务,禁止系统直接读取数据库;数据库也从SQL Server换成了MySQL,缓存上由主要使用Memcached转为结合Redis共同使用。


2010年,开始搭建POP(Platform Open Plan)平台,转型Java。

京东自研技术

京东前端框架Nerv

Nerv 是一款由京东凹凸实验室打造的类 React 前端框架。目前已广泛运用在京东商城(JD.COM)核心业务及TOPLIFE全站。Nerv 基于React标准,使用 Virtual Dom 技术,拥有和 React 一致的 API 与生命周期,如果你已经对 React 使用非常熟悉,那么使用 Nerv 开发对你来说绝对是零学习成本。
与此同时,相比于 React 以及市面其他同类型框架,Nerv 更具体积轻量,性能高效的特点。并且,它符合当下国情,可以完美兼容 IE8 及以上浏览器。

官网:https://nerv.aotu.io/
文档:https://nervjs.github.io/docs/
GitHub:https://github.com/NervJS/nerv

京东后端架构

京东无线服务端架构:

京东的服务框架

售后系统使用的就是基础的三层架构。应用层有不同身份的三个端入口,服务层提供了一些业务支持和数据支持,数据层目前使用到了MySQL和Redis以及ElasticSearch。当然还有一些中间件使用,比如rpc框架,zk配置中心,worker分布式定时任务,jmq消息。还有完善的基础设施,统一监控和日志采集。

JSF雏形——ASF
JSF早期叫做ASF,当时的选择如下:

RPC框架:基于dubbo2.3.2做配置扩展,以及功能扩展包括:rest(resteasy)、webservice(cxf)、kryo/thrift序列化、调用压缩等;
注册中心:Zookeeper,RPC框架直接接入数据源;
监控中心:监控服务+HBase;
管理平台:读取Zookeeper做管理平台,提供基本的上下线、黑白名单等功能。

现在的JSF构成,目前的JSF几乎是全部自研

  • RPC框架:轻量级,更佳的性能,兼容旧版本协议;
  • 注册中心:基于DB作为数据源,前置Index服务;支持十倍接入量;部分逻辑放在注册中心减少客户端负担;
  • 监控中心:监控Proxy服务+InfluxDB(2015后改为ElasticSearch);
  • 管理端:基于DB,功能更强大,提供完善的服务治理管理功能;打通京东应用管理平台,提供应用依赖关系梳理;
  • HTTP网关:基于Netty,支持跨语言调用。

目前的JSF是基于DB做的数据最终一致,也就是AP系统。注册中心主要实现的就是服务列表的注册订阅推送,服务配置的获取下发,服务状态的实时查看等功能。注册中心节点是无状态的,可水平扩展的。整个注册中心集群下的所有注册中心几点都是等价的。

JSF优化与特点

引入Index服务概念:该服务就是一个最简单HTTP的服务,用于找注册中心节点(同机房或者压力最小或者其它特定场景),可以认为是不会挂的服务,RPC框架会优先连该服务拿注册中心地址,这样子的好处是注册中心地址变化后,RPC框架不用修改任何设置;

注册中心内存有服务列表全量缓存,连不上数据库也保证可读;
数据库的数据结构更适合各种维度展示、过滤、分析等,例如根据分组/IP/应用/机房等不同维度;
注册中心就是个JSF服务,监控到压力大即可进行动态水平扩展,不会出现2015年双十一那样的事故了;

服务列表推送逻辑改进:例如原来100个Provider,现在加1个节点,之前的SAF是需要下发101个节点,自己判断加了哪个节点,进行长链接建立;现在的改进是:修改为下发一个add事件,告知RPC框架加了1个节点,RPC框架进行长链接建立;这样做大大减少了推送的数据量;

注册中心与RPC框架可各种交互:注册中心和RPC框架是长链接,而且JSF是支持Callback的,注册中心可以调用RPC框架进行服务列表变化之外的操作;例如查看状态,查看配置,配置下发等。

分布式数据库StarDB

2021京东云峰会上,京东云正式对外发布自主设计研发的金融级国产分布式数据库 StarDB,支持海量数据高并发在线事务处理,具备无感分布式、金融级高可用、高度兼容MySQL、弹性伸缩、安全合规、智能运维管控等重要特性。

京东云

① 京东宙斯:开放接口与合作伙伴进行系统与业务对接。

② 京东云鼎:电商应用云托管平台。

③ 京东云擎:为应用开发者提供便捷的应用开发、部署和托管服务。

④ 京东云峰:为应用开发者提供便捷的移动应用客户端的开发服务。

⑤ 京东云汇:为所有参与者提供的社区互动平台。

移动端

① 虚拟试镜:与清华大学合作,结合增强现实技术和试戴活动运营。

② 虚拟试衣间:Z3D虚拟试衣系统,带你玩转京东试衣间。

Flutter在京东的实践

随着2018年底Google正式发布了Flutter预览版本,京东内部也越来越多的研发团队有用Flutter进行开发业务的诉求。京东正式启动研发并内部发布了JDFlutter引擎。在官方Flutter引擎之上,做了额外的优化和功能扩展:

  • Flutter工程改造: 对Flutter开发环境和dart代码管理进行优化,可以无缝集成到现有APP中并支持自动化dart编译打包,便于开发和调试。
    路由及多页面管理: 对原生页面和flutter页面实现了集中路由管理,可以双向传参、跳转并且进行了共享内存优化。
  • 扩展UI组件库: 官方支持的Material和Cupertino样式不能满足需求,京东在内部实现了自定义样式的组件库。
  • 原生能力扩展: 对官方原生能力进行了扩展,封装了包括网络、登陆、埋点等等基础能力的打通并提供了50+原生扩展API。
  • Android端动态化支持: 在Android端实现了动态化支持,可以线上热更新业务。iOS端暂不支持动态化。

目前京东商城、京东视频、京东到家、京东物流、7Fresh等APP都有业务采用JDFlutter进行开发。

大数据

① 实时数据采集

"长江"项目:将异构数据源实时同步到实时数据仓库;

"南水北调"项目:将数据同步到离线数据仓库;

② 流式数据采集

"汉江"项目:基于Storm提供实时计算API;

③ 实时查询服务

"三峡"项目:基于Spark和PrestoDB解决海量数据下的即时查询;

④ 实时数据挖掘

"东海"项目:将数据挖掘实时化服务线上的推荐和搜索;

咚咚架构

咚咚之于京东相当于旺旺之于淘宝,它们都是服务于买家和卖家的沟通。1.0 版本的技术架构实现是非常直接且简单粗暴的:

2012开始升级:

2013:

更细化的应用服务和架构分层方式:

ShardingSphere

Sharding-JDBC 的 ShardingSphere 主要由张亮个人主导,是一款基于 Java JDBC 接口实现的数据库分库分表管理框架。
2018 年 11 月,伴随着 ShardingSphere 正式进入 Apache 孵化,随后又于 17 个月之后正式毕业成为 Apache 顶级项目,在先后完成了社区组建,同时遵循 Apache 的规则将 ShardingSphere 所有权从公司与个人转向社区所有之后,ShardingSphere 基本完成了第二阶段的转变。

京东人物谱

京东技术牛人众多,以下只列举几个代表性的:

(1)邓正平

组建了京东移动团队、主导了京东智能化业务技术研发、现在为京东智能化物联网业务开疆拓土。既有一线的软件开发和系统架构设计经验,又有多年的团队管理以及业务成功开拓经验,让他有常人所不能及的战略眼光和高度,更有敢为人先、不断创新的开拓精神。

(2)杨思勇

首先带领团队向Java方向转移、奠定了京东的Java平台基础、编码规划、MVC框架,积极适应环境,拥抱变化,不断学习,保持乐观的精神去战斗。而且,重点是:研发的MM们都很喜欢这个怪蜀黍。

(3)赵刚

长期研究图形图像与智能技术,拥有多项技术专利与软件著作权,在京东期间开发了世界先进的Z3D虚拟试衣技术,较好地解决了长期困扰服装电商界的用户个性化试衣、低成本仿真、多层次服装搭配等难题。它特别喜欢钻研技术,16年来一直坚持在一线开发,典型的技术男。

(4)李东

主导开发京东物流核心系统-青龙系统,生活中爱家、爱NBA、爱写代码的好男人。他坚信:架构工作是一个不断重构自己思想和追求用户极致体验的过程。

(5)刘海锋

带领团队自主研发了分布式文件系统JFS(Jingdong FileSystem)与分布式缓存与高速键值存储服务JimDB,使得京东云技术产生了质的飞跃。他坚信拥抱变化,迎接挑战,相信技术的力量,是京东云搭建骨头的人。

参考

  • 京东零售云
  • 京东零售开源技术
  • 京东架构专家分享京东架构之路
  • 京东前端框架
  • 谈谈京东的服务框架

一文读懂京东技术发展简史相关推荐

  1. 一篇文章读懂身份技术发展简史

    从2000年开始,在如何存储和使用身份信息.保障用户能够访问应用程序.跨应用的数据共享一直在不断升级.每隔几年时间,就会有新的需求和挑战,当然也会有对应新的方案,每一次升级都解决了一些问题,但也带来了 ...

  2. eSIM技术必将取代SIM卡 一文读懂eSIM技术优势!

    eSIM技术必将取代SIM卡 一文读懂eSIM技术优势! 未来某一天,当我们纪念Apple Watch 3,不要忘了正是因为它的出现eSIM技术才会流行起来. 众所周知,手机离不开SIM卡.如果没有安 ...

  3. 一文读懂云计算:发展历程、概念技术与现状分析

    掐指一算,云计算已经有了十年的历史,发展到今天几乎可以算是近十年最伟大的技术进步之一. 「云计算」这个术语,也早已从一个新鲜词汇,成为了妇孺皆知的流行语. 任何事物的诞生和发展一定有其前提条件和土壤, ...

  4. 一文读懂Thread技术的起源、原理及发展

    ​什么是Thread Thread是为因应构建智能家居和楼宇自动化网络出现的新需求,推出的一种安全的无线网状网络协议.它以6LoWPAN为基础,充分利用了开放标准和IPv6技术.与其它无线标准相比,它 ...

  5. 4 年 46 个版本,一文读懂 Spring Cloud 发展历史

    作者 | 方剑 责编 | 唐小引 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) Spring Cloud 自 2016 年 1 月发布第一个 Angel.SR5 ...

  6. 一文读懂前端技术演进:盘点Web前端20年的技术变迁史

    本文原文由作者"司徒正美"发布于公众号"前端你别闹",即时通讯网收录时有改动,感谢原作者的分享. 1.引言 1990 年,第一个Web浏览器的诞生:1991 年 ...

  7. 一文读懂平衡二叉树 | 技术头条

    作者 | 宋广泽 责编 | 伍杏玲 出品 | CSDN(ID:CSDNnews)  平衡二叉树,又称AVL树,指的是左子树上的所有节点的值都比根节点的值小,而右子树上的所有节点的值都比根节点的值大,且 ...

  8. 一文读懂可解释机器学习简史,让你的模型再也不是“Black Box”

    来源丨新智元 编辑丨极市平台 近年来,可解释机器学习(IML) 的相关研究蓬勃发展.尽管这个领域才刚刚起步,但是它在回归建模和基于规则的机器学习方面的相关工作却始于20世纪60年代.最近,arXiv上 ...

  9. 一文读懂语音识别技术原理

    https://www.toutiao.com/a6651440650308813319/ 2019-01-28 15:06:47 语音识别是十年来发展最快的技术之一,随着AI的不断发展,深度学习让语 ...

最新文章

  1. bootstrap table 分组_bootstrap-table组合表头的实现方法
  2. 百度的云智一体,让视频变得“硬核性感”
  3. 专题 12 IPC之消息队列
  4. 基于连通域字符分割的流程_基于OpenCV及连通域分析进行文本块分割
  5. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(七)随机答案
  6. caffe2安装篇(二) ubuntu16.04 安装方法
  7. 如何在麦田拍出小清新?
  8. 建行提示找不到服务器,中国建设银行E路护航网银安全组件常见问题解答
  9. CAD专用卸载修复工具,一键完全彻底卸载删除CAD软件的专用卸载工具
  10. 十二生肖的相合、相冲、相刑、相害
  11. 身份证真伪辨别python版
  12. 《Python编程:从入门到实践》配套源代码下载
  13. No1.初来乍到,请多指教
  14. Mysql 第二章 数据库 DML和DQL
  15. 【Kaggle】FIFA球员数据可视化分析(一)
  16. 在标准ASCII码表中,已知英文字母K的十六进制码值是4B,则二进制ASCII码1001000对应的字符是( )
  17. Spring Boot 基础教程:集成 Knife4j
  18. 雇佣兵(YZOJ-1089)
  19. 【厚积薄发系列】读书笔记1—《周一凌晨的领导课》小记
  20. LIMS系统平台在第三方检测实验室中的意义

热门文章

  1. VirtualBox 虚拟电脑控制台错误
  2. 关于 ELEMENTOR 的常见问题
  3. 8 . STM32固件库介绍
  4. 进程互斥锁,队列,IPC进程间通信,生产者与消费者,线程,线程对象的属性,先行互斥锁...
  5. 把书塞进一个App!应用之星,一键制作属于自己的书架App
  6. 操作系统中的虚拟内存详解
  7. Diff算法中使用index作为key的弊端
  8. MATLAB使用radon函数和iradon函数计算图像的投影并从投影中重构图像
  9. 1546. 和为目标值且不重叠的非空子数组的最大数目-贪心算法
  10. 【黑灰产犯罪研究】涉物联网犯罪