精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

什么時候該用MySQL,什么時候該用ES呢?

數據庫 MySQL
隨著京東到家近幾年業務的快速發展,訂單中心ES架設方案也不斷演進,發展至今ES集群架設是一套實時互備方案,很好地保障了ES集群讀寫的穩定性,下面就給大家介紹一下這個歷程以及過程中遇到的一些坑。

京東到家訂單中心系統業務中,無論是外部商家的訂單生產,或是內部上下游系統的依賴,訂單查詢的調用量都非常大,造成了訂單數據讀多寫少的情況。

我們把訂單數據存儲在MySQL中,但顯然只通過DB來支撐大量的查詢是不可取的。同時對于一些復雜的查詢,MySQL支持得不夠友好,所以訂單中心系統使用了Elasticsearch來承載訂單查詢的主要壓力。

Elasticsearch作為一款功能強大的分布式搜索引擎,支持近實時的存儲、搜索數據,在京東到家訂單系統中發揮著巨大作用,目前訂單中心ES集群存儲數據量達到10億個文檔,日均查詢量達到5億。

隨著京東到家近幾年業務的快速發展,訂單中心ES架設方案也不斷演進,發展至今ES集群架設是一套實時互備方案,很好地保障了ES集群讀寫的穩定性,下面就給大家介紹一下這個歷程以及過程中遇到的一些坑。

[[325785]]

ES 集群架構演進之路

1、初始階段

訂單中心ES初始階段如一張白紙,架設方案基本沒有,很多配置都是保持集群默認配置。整個集群部署在集團的彈性云上,ES集群的節點以及機器部署都比較混亂。同時按照集群維度來看,一個ES集群會有單點問題,顯然對于訂單中心業務來說也是不被允許的。

2、集群隔離階段

和很多業務一樣,ES集群采用的混布的方式。但由于訂單中心ES存儲的是線上訂單數據,偶爾會發生混布集群搶占系統大量資源,導致整個訂單中心ES服務異常。

顯然任何影響到訂單查詢穩定性的情況都是無法容忍的,所以針對于這個情況,先是對訂單中心ES所在的彈性云,遷出那些系統資源搶占很高的集群節點,ES集群狀況稍有好轉。但隨著集群數據不斷增加,彈性云配置已經不太能滿足ES集群,且為了完全的物理隔離,最終干脆將訂單中心ES集群部署到高配置的物理機上,ES集群性能又得到提升。

3、節點副本調優階段

ES的性能跟硬件資源有很大關系,當ES集群單獨部署到物理機器上時,集群內部的節點并不是獨占整臺物理機資源,在集群運行的時候同一物理機上的節點仍會出現資源搶占的問題。所以在這種情況下,為了讓ES單個節點能夠使用最大程度的機器資源,采用每個ES節點部署在單獨一臺物理機上方式。

但緊接著,問題又來了,如果單個節點出現瓶頸了呢?我們應該怎么再優化呢?

ES查詢的原理,當請求打到某號分片的時候,如果沒有指定分片類型(Preference參數)查詢,請求會負載到對應分片號的各個節點上。而集群默認副本配置是一主一副,針對此情況,我們想到了擴容副本的方式,由默認的一主一副變為一主二副,同時增加相應物理機。

訂單中心ES集群架設示意圖

如圖,整個架設方式通過VIP來負載均衡外部請求:

整個集群有一套主分片,二套副分片(一主二副),從網關節點轉發過來的請求,會在打到數據節點之前通過輪詢的方式進行均衡。集群增加一套副本并擴容機器的方式,增加了集群吞吐量,從而提升了整個集群查詢性能。

下圖為訂單中心ES集群各階段性能示意圖,直觀地展示了各階段優化后ES集群性能的顯著提升:

 

當然分片數量和分片副本數量并不是越多越好,在此階段,我們對選擇適當的分片數量做了進一步探索。分片數可以理解為MySQL中的分庫分表,而當前訂單中心ES查詢主要分為兩類:單ID查詢以及分頁查詢。

分片數越大,集群橫向擴容規模也更大,根據分片路由的單ID查詢吞吐量也能大大提升,但聚合的分頁查詢性能則將降低;分片數越小,集群橫向擴容規模也更小,單ID的查詢性能也會下降,但分頁查詢的性能將會提升。

所以如何均衡分片數量和現有查詢業務,我們做了很多次調整壓測,最終選擇了集群性能較好的分片數。

4、主從集群調整階段

到此,訂單中心的ES集群已經初具規模,但由于訂單中心業務時效性要求高,對ES查詢穩定性要求也高,如果集群中有節點發生異常,查詢服務會受到影響,從而影響到整個訂單生產流程。很明顯這種異常情況是致命的,所以為了應對這種情況,我們初步設想是增加一個備用集群,當主集群發生異常時,可以實時的將查詢流量降級到備用集群。

那備用集群應該怎么來搭?主備之間數據如何同步?備用集群應該存儲什么樣的數據?

考慮到ES集群暫時沒有很好的主備方案,同時為了更好地控制ES數據寫入,我們采用業務雙寫的方式來搭設主備集群。每次業務操作需要寫入ES數據時,同步寫入主集群數據,然后異步寫入備集群數據。同時由于大部分ES查詢的流量都來源于近幾天的訂單,且訂單中心數據庫數據已有一套歸檔機制,將指定天數之前已經關閉的訂單轉移到歷史訂單庫。

所以歸檔機制中增加刪除備集群文檔的邏輯,讓新搭建的備集群存儲的訂單數據與訂單中心線上數據庫中的數據量保持一致。同時使用ZK在查詢服務中做了流量控制開關,保證查詢流量能夠實時降級到備集群。在此,訂單中心主從集群完成,ES查詢服務穩定性大大提升。

5、現今:實時互備雙集群階段

期間由于主集群ES版本是較低的1.7,而現今ES穩定版本都已經迭代到6.x,新版本的ES不僅性能方面優化很大,更提供了一些新的好用的功能,所以我們對主集群進行了一次版本升級,直接從原來的1.7升級到6.x版本。

集群升級的過程繁瑣而漫長,不但需要保證線上業務無任何影響,平滑無感知升級,同時由于ES集群暫不支持從1.7到6.x跨越多個版本的數據遷移,所以需要通過重建索引的方式來升級主集群,具體升級過程就不在此贅述了。

主集群升級的時候必不可免地會發生不可用的情況,但對于訂單中心ES查詢服務,這種情況是不允許的。所以在升級的階段中,備集群暫時頂上充當主集群,來支撐所有的線上ES查詢,保證升級過程不影響正常線上服務。同時針對于線上業務,我們對兩個集群做了重新的規劃定義,承擔的線上查詢流量也做了重新的劃分。

備集群存儲的是線上近幾天的熱點數據,數據規模遠小于主集群,大約是主集群文檔數的十分之一。集群數據量小,在相同的集群部署規模下,備集群的性能要優于主集群。

然而在線上真實場景中,線上大部分查詢流量也來源于熱點數據,所以用備集群來承載這些熱點數據的查詢,而備集群也慢慢演變成一個熱數據集群。之前的主集群存儲的是全量數據,用該集群來支撐剩余較小部分的查詢流量,這部分查詢主要是需要搜索全量訂單的特殊場景查詢以及訂單中心系統內部查詢等,而主集群也慢慢演變成一個冷數據集群。

同時備集群增加一鍵降級到主集群的功能,兩個集群地位同等重要,但都可以各自降級到另一個集群。雙寫策略也優化為:假設有AB集群,正常同步方式寫主(A集群)異步方式寫備(B集群)。A集群發生異常時,同步寫B集群(主),異步寫A集群(備)。

[[325788]]

ES 訂單數據的同步方案

MySQL數據同步到ES中,大致總結可以分為兩種方案:

  •  方案1:監聽MySQL的Binlog,分析Binlog將數據同步到ES集群中。
  •  方案2:直接通過ES API將數據寫入到ES集群中。

考慮到訂單系統ES服務的業務特殊性,對于訂單數據的實時性較高,顯然監聽Binlog的方式相當于異步同步,有可能會產生較大的延時性。且方案1實質上跟方案2類似,但又引入了新的系統,維護成本也增高。所以訂單中心ES采用了直接通過ES API寫入訂單數據的方式,該方式簡潔靈活,能夠很好的滿足訂單中心數據同步到ES的需求。

由于ES訂單數據的同步采用的是在業務中寫入的方式,當新建或更新文檔發生異常時,如果重試勢必會影響業務正常操作的響應時間。

所以每次業務操作只更新一次ES,如果發生錯誤或者異常,在數據庫中插入一條補救任務,有Worker任務會實時地掃這些數據,以數據庫訂單數據為基準來再次更新ES數據。通過此種補償機制,來保證ES數據與數據庫訂單數據的最終一致性。

[[325789]]

遇到的一些坑

1、實時性要求高的查詢走DB

對于ES寫入機制的有了解的同學可能會知道,新增的文檔會被收集到Indexing Buffer,然后寫入到文件系統緩存中,到了文件系統緩存中就可以像其他的文件一樣被索引到。

然而默認情況文檔從Indexing Buffer到文件系統緩存(即Refresh操作)是每秒分片自動刷新,所以這就是我們說ES是近實時搜索而非實時的原因:文檔的變化并不是立即對搜索可見,但會在一秒之內變為可見。

當前訂單系統ES采用的是默認Refresh配置,故對于那些訂單數據實時性比較高的業務,直接走數據庫查詢,保證數據的準確性。

2、避免深分頁查詢

ES集群的分頁查詢支持from和size參數,查詢的時候,每個分片必須構造一個長度為from+size的優先隊列,然后回傳到網關節點,網關節點再對這些優先隊列進行排序找到正確的size個文檔。

假設在一個有6個主分片的索引中,from為10000,size為10,每個分片必須產生10010個結果,在網關節點中匯聚合并60060個結果,最終找到符合要求的10個文檔。

由此可見,當from足夠大的時候,就算不發生OOM,也會影響到CPU和帶寬等,從而影響到整個集群的性能。所以應該避免深分頁查詢,盡量不去使用。

3、FieldData與Doc Values

FieldData 

線上查詢出現偶爾超時的情況,通過調試查詢語句,定位到是跟排序有關系。排序在es1.x版本使用的是FieldData結構,FieldData占用的是JVM Heap內存,JVM內存是有限,對于FieldData Cache會設定一個閾值。

如果空間不足時,使用最久未使用(LRU)算法移除FieldData,同時加載新的FieldData Cache,加載的過程需要消耗系統資源,且耗時很大。所以導致這個查詢的響應時間暴漲,甚至影響整個集群的性能。針對這種問題,解決方式是采用Doc Values。

Doc Values 

Doc Values是一種列式的數據存儲結構,跟FieldData很類似,但其存儲位置是在Lucene文件中,即不會占用JVM Heap。隨著ES版本的迭代,Doc Values比FieldData更加穩定,Doc Values在2.x起為默認設置。

[[325790]]

總結

架構的快速迭代源于業務的快速發展,正是由于近幾年到家業務的高速發展,訂單中心的架構也不斷優化升級。而架構方案沒有最好的,只有最合適的,相信再過幾年,訂單中心的架構又將是另一個面貌,但吞吐量更大,性能更好,穩定性更強,將是訂單中心系統永遠的追求。 

 

責任編輯:龐桂玉 來源: ITPUB
相關推薦

2017-05-15 09:55:07

2024-08-05 01:22:16

2025-09-08 07:00:00

2025-09-09 09:20:48

2015-07-08 15:55:01

NSStringcopystrong

2012-09-24 10:20:39

JavaScriptJS

2013-11-28 16:03:24

2023-06-06 16:54:00

2022-05-19 10:27:34

機器學習人工智能

2017-06-28 15:06:51

PythonLambda函數

2017-06-29 08:45:06

MySQLNOT INNOT EXISTS

2021-08-13 11:31:23

HTTP

2021-09-29 09:24:21

GCGo STW

2015-10-20 15:59:57

注釋代碼程序

2015-10-26 09:38:52

避免注釋代碼

2025-05-15 08:50:00

MQRPC架構

2015-02-01 09:45:46

2020-01-05 23:28:51

MQ消息進程

2012-07-26 10:27:31

PHP

2021-01-30 19:59:37

性能項目開源
點贊
收藏

51CTO技術棧公眾號

精品国产一区二区三区久久久蜜月| 综合激情在线| 在线观看一区二区精品视频| 一区二区三区偷拍| 亚洲精品97久久中文字幕| 国产精品老牛| www.久久色.com| 国产伦理在线观看| 日韩中文影院| 伊人一区二区三区| 欧美日韩电影一区二区| aaa国产视频| 亚洲欧美日韩国产综合精品二区| 中文字幕一区二区三区电影| 日本50路肥熟bbw| 国产资源一区| 福利二区91精品bt7086| 一级日韩一区在线观看| 五月天婷婷视频| 国产自产高清不卡| 日本成人激情视频| 欧美黄色免费在线观看| 精品毛片免费观看| 日韩av在线网址| 日韩精品在线播放视频| 素人一区二区三区| 午夜精品一区二区三区免费视频 | 亚洲人成精品久久久久久| 精品久久中出| 午夜精品久久久久久久第一页按摩| 亚洲欧美bt| 欧美黄色免费网站| 免费黄色国产视频| 精品久久久久久久久久久aⅴ| 精品成人在线观看| 日韩不卡的av| av成人亚洲| 色综合久久精品| 日韩中字在线观看| 欧美色图天堂| 亚洲人成亚洲人成在线观看图片| 亚洲一区尤物| bbbbbbbbbbb在线视频| 久久综合久久综合亚洲| 国产精品一区二区你懂得| 国产精品呻吟久久| 捆绑紧缚一区二区三区视频| 国产成人精品视频| √资源天堂中文在线| 在线播放日韩| 久久久久久成人| 成年人av电影| 欧美91视频| 欧美激情二区三区| 久久久国产成人| 在线电影一区二区| 另类美女黄大片| caoporn91| 欧美成人一品| 久久久久久综合网天天| 91看片在线播放| 久久精品盗摄| 国产精品激情自拍| 中文字幕在线观看你懂的| 奇米在线7777在线精品| 国产精品视频一| 一本一道精品欧美中文字幕| 九九**精品视频免费播放| 成人欧美一区二区三区在线 | 精品亚洲成a人| 91夜夜揉人人捏人人添红杏| 精品人妻一区二区三区麻豆91| 国产真实乱子伦精品视频| 国产综合香蕉五月婷在线| 国产乱码久久久久| 国产乱人伦偷精品视频免下载| 99理论电影网| 日本人妖在线| 亚洲欧洲另类国产综合| japanese在线播放| 岛国片av在线| 日韩欧美极品在线观看| 波多野结衣xxxx| 欧洲大片精品免费永久看nba| 精品乱码亚洲一区二区不卡| 人妻精品久久久久中文字幕| 精品国产美女| 欧美日韩第一页| 亚洲天堂一区在线| 蜜臂av日日欢夜夜爽一区| 亚洲影院高清在线| 亚洲av毛片成人精品| 国产免费观看久久| www.男人天堂网| 欧美电影免费观看网站| 欧美日韩电影一区| 日韩女优在线视频| 精品国产一区二区三区小蝌蚪| 亚洲天堂av网| 久久久久久国产精品免费播放| 在线亚洲欧美| 成人国产在线激情| 色视频在线观看免费| 1000精品久久久久久久久| 大肉大捧一进一出好爽视频| 久久亚洲精品人成综合网| 精品日韩99亚洲| 粉嫩精品久久99综合一区| 影音先锋亚洲电影| 成人免费在线网址| 毛片免费在线播放| 亚洲一区二区三区小说| 日本激情视频在线播放| 九色丨蝌蚪丨成人| 久久国产加勒比精品无码| 欧美精品一二三四区| 国产精品18久久久久久vr| 日韩美女一区| 欧美裸体视频| 欧美一级夜夜爽| 在线看片中文字幕| 亚洲在线网站| 国产精品美女xx| 成人黄色在线电影| 欧美三级资源在线| 蜜桃传媒一区二区亚洲av| 欧美日韩亚洲国产精品| 国产一区视频在线| 激情在线视频| 欧美视频专区一二在线观看| 91亚洲一线产区二线产区| 天堂美国久久| 国产噜噜噜噜噜久久久久久久久| 欧美美女搞黄| 精品日本美女福利在线观看| 欧美xxxx日本和非洲| 91精品1区| 92国产精品久久久久首页| 成全电影播放在线观看国语| 黑人精品xxx一区| 喷水视频在线观看| 99成人在线| 韩国一区二区三区美女美女秀| 午夜dj在线观看高清视频完整版| 欧美精品vⅰdeose4hd| 天堂av网手机版| 美日韩一级片在线观看| 日韩精品成人一区二区在线观看| 精品国产免费人成网站| 国产视频自拍一区| 成人午夜淫片100集| 91捆绑美女网站| www黄色av| 蜜臀av免费一区二区三区| 欧美一区在线直播| 国产三级在线观看| 欧美亚州韩日在线看免费版国语版| 加勒比一区二区| 日韩精品亚洲专区| 性刺激综合网| 国产情侣一区在线| 久久久噜噜噜久久| 午夜黄色小视频| 色综合久久中文综合久久97| 亚洲成人网在线播放| 首页国产欧美久久| 亚洲一卡二卡三卡四卡无卡网站在线看| 国产精品久久久久久吹潮| 色老头一区二区三区| 国产视频在线观看视频| 亚洲精品ww久久久久久p站| 少妇熟女视频一区二区三区 | 亚洲欧美日韩国产综合在线| 欧美日韩理论片| 亚洲国产裸拍裸体视频在线观看乱了中文 | 精品一区二区三区电影| 少妇高潮av久久久久久| 国产精品色哟哟网站| 亚洲丝袜在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 精品乱色一区二区中文字幕| 国产一区一一区高清不卡| 久久久精品国产| 日韩在线视频第一页| 色天使色偷偷av一区二区| 欧美88888| 成人黄色大片在线观看| www黄色在线| 中文一区一区三区免费在线观看| 国产伦精品一区二区三区免费视频| 在线亚洲人成| 精品中文字幕在线2019| 亚洲人在线观看视频| 欧美丝袜自拍制服另类| 国产在线观看你懂的| 国产视频一区在线播放| 亚洲综合中文网| 久久中文在线| 国产爆乳无码一区二区麻豆| 国产精品羞羞答答在线观看| 亚洲va国产va天堂va久久| 英国三级经典在线观看| 久久人人爽人人爽爽久久| 香蕉久久一区二区三区| 91精品国产综合久久香蕉的特点 | 亚洲精品色午夜无码专区日韩| 国内不卡的二区三区中文字幕| 草草久久久无码国产专区| 自拍欧美日韩| 亚洲精品永久www嫩草| 亚洲一区二区免费在线观看| 国产精品免费看久久久香蕉 | 亚洲久久久久| 日本不卡一区二区三区在线观看 | 日韩精品伦理第一区| 99ri日韩精品视频| 成人激情视频在线播放| 欧美二三四区| 97久久国产精品| av网站网址在线观看| 在线观看欧美视频| 无码精品黑人一区二区三区| 91精品午夜视频| 亚洲天堂中文在线| 91久久线看在观草草青青 | 欧美在线播放高清精品| 中文字幕超碰在线| 亚洲一区在线观看视频| 免费三级在线观看| 国产精品网站一区| 91成年人网站| 久久午夜色播影院免费高清| 蜜臀av粉嫩av懂色av| 国产激情精品久久久第一区二区| 国产精品区在线| 免费观看30秒视频久久| 9久久婷婷国产综合精品性色| 国产亚洲在线| 精品少妇一区二区三区在线| 国产精品www994| 免费日韩在线观看| 伊人久久大香线蕉精品组织观看| 亚洲成色www久久网站| 精品久久久久久久久久久下田| 欧美一区二区三区在线播放| 亚洲小说图片视频| 欧美日韩在线高清| 国产精品一区二区av交换| 品久久久久久久久久96高清| 免费欧美视频| 日韩精品一区二区三区色偷偷| 国产精品最新| 亚欧精品在线| 国产精品久久久久久久免费观看| 亚洲一卡二卡区| 婷婷伊人综合| www.国产亚洲| 亚洲精品偷拍| 四虎永久在线精品无码视频| 爽好久久久欧美精品| 日韩精品你懂的| 麻豆精品精品国产自在97香蕉| 国产永久免费网站| 国产成人综合亚洲91猫咪| 国产xxxxhd| 成人激情动漫在线观看| 欧美做受喷浆在线观看| 国产亚洲精品aa| 貂蝉被到爽流白浆在线观看| 综合久久久久久久| 久久中文字幕无码| 精品日本高清在线播放| 天天综合久久综合| 51精品视频一区二区三区| 亚洲国产精品二区| 亚洲免费av网址| 日本免费中文字幕在线| 欧美高清在线视频观看不卡| 三级在线看中文字幕完整版| 国产精品入口免费视| 深夜福利一区| 欧美极品色图| 久久久久亚洲| 日韩少妇内射免费播放| 奇米精品一区二区三区在线观看一| 伊人免费视频二| 久久综合色鬼综合色| 欧洲第一无人区观看| 日韩欧亚中文在线| 国产日韩一级片| 亚洲精品中文字| www.在线视频| 国产高清视频一区三区| 日韩精品亚洲专区在线观看| 欧美一进一出视频| 欧美日韩ab| www.日本一区| 91蜜桃在线免费视频| 人与动物性xxxx| 欧美午夜激情在线| www.日本在线观看| 在线视频欧美日韩精品| 免费h在线看| 亚洲最大福利网| 视频精品在线观看| 男女私大尺度视频| 国精品**一区二区三区在线蜜桃| 激情综合丁香五月| 一区二区三区久久| 国产成人av免费| 亚洲精品一区二区三区蜜桃下载 | 欧美成人精品欧美一级乱| 九色porny丨国产精品| 精品无码一区二区三区| 亚洲色图欧洲色图| 中文字幕无码乱码人妻日韩精品| 欧美mv日韩mv| 在线观看国产原创自拍视频| 2019中文字幕在线免费观看| 日韩福利影视| 蜜桃av久久久亚洲精品| 伊人久久大香线蕉综合热线| 中文字幕天天干| 久久久久久久电影| 国产一级片免费观看| 欧美老肥妇做.爰bbww| 都市激情一区| 欧美亚洲国产日韩2020| 噜噜噜天天躁狠狠躁夜夜精品 | 亚洲三级影院| 女教师高潮黄又色视频| 中文字幕一区二区三区四区不卡| 午夜精品久久久久久久久久久久久蜜桃| 日韩欧美国产三级| 欧美日本一道| 国产精品久久久av| 国产日产一区| 国产97在线 | 亚洲| 97久久久精品综合88久久| 欧美毛片在线观看| 在线播放/欧美激情| 黄色片免费在线观看| 国产精品久久不能| 久久人体视频| 黄色片视频在线| 成人18精品视频| 男女视频免费看| 精品99999| 日韩影院在线| 久久综合入口| 亚洲区第一页| 91玉足脚交白嫩脚丫| 亚洲国产成人tv| 欧美一级特黄aaaaaa| 久久99青青精品免费观看| 91综合久久爱com| www成人免费| 国产宾馆实践打屁股91| 黄色激情视频在线观看| 精品久久久久av影院| 日韩欧美一中文字暮专区| 91系列在线观看| 91中文字幕精品永久在线| 激情综合网婷婷| av网站免费线看精品| 精品久久久久久久久久久久久久久久久久| 亚洲精美色品网站| 色婷婷综合久久久中字幕精品久久| 玛丽玛丽电影原版免费观看1977| 视频在线观看国产精品| 99久久99久久精品免费看小说. | 久久久久久久久久婷婷| 国产精品15p| 欧美日韩国产精品激情在线播放| 成人av在线一区二区| 成人免费视频国产免费| 在线观看成人黄色| 九色精品蝌蚪| 成人av在线不卡| 91日韩一区二区三区| 欧美日韩一二三四区| 久久久www成人免费精品张筱雨| 日韩成人在线观看视频| 国产在线观看福利| 国产精品理论片| 日本加勒比一区| 国产精品18久久久久久麻辣| 91精品婷婷色在线观看| 日韩精品国产一区| 亚欧色一区w666天堂| www日韩tube| 亚洲综合精品一区二区| 美女诱惑一区| 国产午夜手机精彩视频| 国产丝袜一区二区三区免费视频| 麻豆久久久久| 久久久久久久久久久视频| 国产日产欧美精品一区二区三区| 亚洲无码精品国产| 欧美资源在线观看|