文章目錄
前言
京東發展歷程
京東商城技術的演進
京東自研技術
京東前端框架Nerv
京東后端架構
京東的服務框架
分布式數據庫StarDB
京東云
移動端
Flutter在京東的實踐
大數據
咚咚架構
ShardingSphere
京東人物譜
參考
“京東可以高速發展到今天的規模的原因,其中最核心的是堅持“倒三角”戰略:建立出色的團隊;打造財務、物流和技術三大核心系統;降低成本、提升效率;為用戶帶來最佳體驗。在《京東技術解密》一書中,大家會看到技術驅動的力量,這也是京東第一次全面展示自己的技術體系。” –劉強東
京東將整個倒三角形分為四個橫向,最底層是“團隊”,倒數第二層是“物流系統、IT系統及財務系統”,倒數第三層是“成本和效率”,最上面一層是“產品、價格和服務”。這四部分對京東的意義分別是基礎、供應鏈、關鍵KPI以及用戶體驗。
前言
京東的崛起,就是一部草根長成大樹的歷史,是中國電子商務從零摸索出一條自己道路的歷史。京東的每一步,都走得很實在,用戶需要什么,就去解決什么。
劉強東,江蘇宿遷人,1974年出生。1992年攜500塊錢和76個雞蛋考入人大社會科學系,1993年開始自學計算機,便開始在中關村給人裝電腦,大學畢業時,已有二十幾萬積蓄,在校門口花24萬左右買下一個餐廳,但幾個月后虧光。然后在一家日本企業待了近兩年,1998年在中關村租下一個柜臺賣光盤。明碼標價、正品行貨、售后培訓,憑著這幾招贏得了很多顧客青睞,于是生意不斷擴張。2003年轉入線上銷售,從此走上開掛之路。
京東發展歷程
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,使得京東云技術產生了質的飛躍。他堅信擁抱變化,迎接挑戰,相信技術的力量,是京東云搭建骨頭的人。
參考
京東零售云
京東零售開源技術
京東架構專家分享京東架構之路
京東前端框架
談談京東的服務框架
審核編輯 黃宇
-
API
+關注
關注
2文章
2092瀏覽量
66111 -
京東
+關注
關注
2文章
1063瀏覽量
49863
發布評論請先 登錄
MediaTek Pentonic平臺推動智能電視顯示技術發展
一文讀懂:鋰離子電池的基本結構與應用
京東方華燦淺談氮化鎵材料與技術發展
無刷雙饋電機專利技術發展
輪邊驅動電機專利技術發展
DeepSeek的開源之路:一文讀懂從V1-R1的技術發展,見證從開源新秀到推理革命的領跑者
名單公布!【書籍評測活動NO.57】芯片通識課:一本書讀懂芯片技術
一文讀懂什么是「雷電4」

一文讀懂京東技術發展簡史
評論