精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

在线免费av播放| 国产精品久久久久久久久久久久冷| 在线免费看黄视频| 久久麻豆视频| 香蕉成人伊视频在线观看| 免费看污久久久| 国产免费黄色片| 亚洲深夜影院| 久久精品视频播放| 男女黄床上色视频| 亚洲经典视频| 欧美视频一区二区| av免费观看大全| 麻豆tv入口在线看| 成人黄色av电影| 国产精品一区av| www..com国产| 婷婷丁香综合| 亚洲社区在线观看| 亚洲黄色小说在线观看| 青青草国产一区二区三区| 精品成人在线视频| 欧洲xxxxx| 91.xxx.高清在线| 97精品超碰一区二区三区| 亚洲一区二区三区四区视频| 懂色av蜜臀av粉嫩av喷吹| 在线观看不卡| 欧美成人手机在线| 制服丨自拍丨欧美丨动漫丨| 国产精品亚洲人成在99www| 精品毛片乱码1区2区3区| 一起操在线视频| 99久久er| 91精品福利视频| 国产女女做受ⅹxx高潮| 国产不卡123| 中文字幕一区二区在线观看| 视频一区视频二区视频三区视频四区国产 | 91精品国产综合久久福利| 一级特黄性色生活片| 色戒汤唯在线观看| 偷拍一区二区三区四区| 亚洲色成人www永久在线观看 | www.天堂在线| 激情深爱一区二区| 国产精品偷伦视频免费观看国产| 日本中文字幕第一页| 亚洲影视综合| 2019亚洲日韩新视频| 五月天综合激情| 国产日韩一区二区三区在线| 亚州成人av在线| 国产在线拍揄自揄拍| 韩日成人在线| 97视频在线播放| 粉嫩aⅴ一区二区三区| 在线亚洲观看| 日产精品99久久久久久| 无码人妻一区二区三区线 | 一级日本黄色片| 玖玖玖视频精品| 欧美不卡激情三级在线观看| 久久久无码人妻精品无码| 激情小说一区| 国产视频精品久久久| 精品人妻一区二区三区蜜桃视频| 国产精品日韩精品中文字幕| 在线激情影院一区| 亚洲不卡在线播放| 欧美午夜不卡| 欧美亚洲午夜视频在线观看| 久久久精品毛片| 久久av资源网| 古典武侠综合av第一页| 日本免费一区二区三区最新| 日本一区二区三区在线观看| 一区二区三区免费看| 手机电影在线观看| 欧美日韩亚洲一区二区| 日韩不卡一二三| 国产在线一区不卡| 日韩av中文字幕在线免费观看| 亚洲午夜精品久久久久久高潮| 五月婷婷亚洲| 国语自产在线不卡| 国内精品久久久久| 免费网站在线高清观看| 久久影视一区| 久久久久久久久爱| www毛片com| 激情六月婷婷综合| 国产精品日韩高清| 福利在线视频导航| 亚洲欧美另类久久久精品| 国产午夜福利100集发布| 欧美精品高清| 欧美xxxx老人做受| 亚洲一区二区自偷自拍| 欧美日韩国产成人精品| 人妖精品videosex性欧美| 999av视频| 久久久精品国产免大香伊| 亚洲欧洲在线一区| 日本片在线看| 欧美日韩国产影片| 中文字幕一区二区久久人妻网站| 欧美岛国激情| 人体精品一二三区| 蜜桃视频在线观看www| 中日韩免费视频中文字幕| 丝袜人妻一区二区三区| 国产精品久久久久久久久久齐齐| 亚洲国产97在线精品一区| 人与嘼交av免费| 99综合在线| 亚洲综合小说区| 第一页在线观看| 欧美日韩午夜激情| 日本成人在线免费| 久久精品播放| 国产精品pans私拍| 无码国产精品一区二区免费16| 亚洲三级在线免费观看| 天天爱天天操天天干| 久久精品国产亚洲blacked| 久久亚洲精品一区| 一区二区视频免费| 久久伊人中文字幕| 噜噜噜久久亚洲精品国产品麻豆| 激情久久免费视频| 色老头一区二区三区在线观看| 九九九在线观看| www.欧美日韩国产在线| 五月天激情图片| 日本高清久久| 久久综合电影一区| 国产又粗又猛又色又| 国产欧美综合在线| 激情婷婷综合网| 欧美人与拘性视交免费看| 26uuu日韩精品一区二区| 日韩在线一区二区三区四区| 亚洲在线观看免费| 涩视频在线观看| 欧美午夜不卡影院在线观看完整版免费 | 欧美成人三级视频| 国产剧情一区二区三区| 亚洲欧美一二三| 深夜福利一区| 欧美第一黄色网| 高h调教冰块play男男双性文| 樱桃国产成人精品视频| 992tv人人草| 综合国产精品| 成人福利在线视频| 九九九伊在人线综合| 在线观看一区日韩| 日本猛少妇色xxxxx免费网站| 秋霞电影网一区二区| 亚洲一二三区精品| 久久一级大片| 午夜精品福利在线观看| 四虎影视在线观看2413| 色综合色狠狠综合色| 蜜桃精品成人影片| 日韩激情一二三区| 中文字幕一区二区三区最新| 99tv成人影院| 久久久久久久91| 婷婷婷国产在线视频| 在线亚洲一区二区| 黑人操日本美女| 成人午夜电影久久影院| 成年人免费在线播放| 不卡日本视频| 91麻豆蜜桃| 毛片电影在线| 最近2019中文字幕第三页视频| 国产精品久久久久久久免费| 亚洲制服丝袜av| 好吊日免费视频| 麻豆成人av在线| 国产一二三区在线播放| 国产精品欧美日韩一区| 99久久久久国产精品免费| 91九色porn在线资源| 在线观看中文字幕亚洲| www.精品久久| 在线免费亚洲电影| 欧美爱爱小视频| 国产亚洲一二三区| 国模大尺度视频| 麻豆成人在线| 中文字幕精品在线播放| 免费成人高清在线视频theav| 国产日韩在线亚洲字幕中文| 国产在线美女| 久久精品在线播放| 欧洲视频在线免费观看| 56国语精品自产拍在线观看| 天天综合网久久综合网| 亚洲精品亚洲人成人网在线播放| 一本加勒比波多野结衣| 寂寞少妇一区二区三区| 大肉大捧一进一出好爽动态图| 一区二区三区四区在线观看国产日韩 | 麻豆视频一区| 亚洲最大成人网色| 二区三区不卡| 高清欧美性猛交| 欧美r级在线| 亚洲天堂av女优| 日本成人动漫在线观看| 日韩一级黄色片| www.亚洲激情| 精品美女久久久久久免费| 日本少妇高清视频| 国产精品日产欧美久久久久| 偷拍女澡堂一区二区三区| 国产99精品国产| 97超碰人人看| 精品一区二区久久| 丁香婷婷激情网| 裸体一区二区| 国产高清精品在线观看| 影音先锋久久| 欧美性潮喷xxxxx免费视频看| 午夜久久免费观看| 亚洲一区三区视频在线观看| 黑人操亚洲人| 欧美在线视频二区| 在线视频亚洲专区| 久久久久久久久久久久久9999| 99久热这里只有精品视频免费观看| 国产一区欧美二区三区| 成人福利片在线| 国产精品久久久久久亚洲调教| 在线观看爽视频| 欧美亚洲国产视频| 毛片在线网站| 欧美一区二区三区免费观看| gogo久久| 57pao国产成人免费| 国产免费拔擦拔擦8x高清在线人| 韩国视频理论视频久久| 福利在线免费视频| 2019精品视频| 亚洲三级欧美| 国产成人亚洲综合| 欧美aaa大片视频一二区| 国产不卡在线观看| 99蜜月精品久久91| 国产精品自产拍在线观| 日日狠狠久久| 亚洲综合精品一区二区| 操欧美女人视频| 韩国成人一区| 日韩精品免费一区二区夜夜嗨 | 一道本成人在线| www.国产毛片| 欧美日韩成人一区二区| 国产精品久久久久久久久久久久久久久久久久 | 极品美女销魂一区二区三区 | 99久久久无码国产精品6| 久久精品国语| 污视频网站观看| 国产剧情在线观看一区二区| 日韩免费高清一区二区| 国产婷婷色一区二区三区在线| 老司机福利在线观看| 中文字幕亚洲精品在线观看| 欧美精品99久久久| 岛国精品视频在线播放| 国产情侣呻吟对白高潮| 欧美一区二区三区性视频| 亚洲精品一区二区三区蜜桃| 日韩成人xxxx| 亚洲xxxxxx| 欧美激情一区二区三区成人| 午夜激情电影在线播放| 国产精品色婷婷视频| 成人看片黄a免费看视频| 久久国产精品久久精品国产| 色135综合网| 国产freexxxx性播放麻豆| 天堂成人免费av电影一区| 亚洲视频在线不卡| 久久理论电影网| 搜索黄色一级片| 精品色蜜蜜精品视频在线观看| 中文在线免费观看| 欧美精品一区二区在线观看| 精品视频一二区| 久久99热精品这里久久精品| 欧美亚洲韩国| 成人在线观看av| av中文字幕一区二区| 日本黄大片在线观看| 日本成人中文字幕在线视频| wwwxxx色| 国产精品毛片无遮挡高清| 亚洲精品午夜久久久久久久| 欧美日韩一区精品| 香蕉视频911| 精品少妇一区二区30p| 午夜无码国产理论在线| 国产精品一 二 三| 五月天激情综合网| 精品久久久久久久无码| 成人av综合一区| 欧美激情图片小说| 欧美日韩一二三| 外国精品视频在线观看| 久久成人精品一区二区三区| 婷婷综合六月| 久草精品电影| 黄色欧美成人| 日韩精品视频网址| 一区精品在线播放| 五月激情丁香网| 亚洲午夜久久久影院| 成人黄色动漫| 国产精品免费区二区三区观看| 国产精品麻豆久久| 亚洲精品456| 精品亚洲永久免费精品| 超碰免费公开在线| 国产精品美女网站| 自拍自偷一区二区三区| 99热久久这里只有精品| 国内精品久久久久影院色| 亚洲精品色午夜无码专区日韩| 精品久久久国产精品999| а√天堂资源在线| 久久久国产精品亚洲一区| 无人区在线高清完整免费版 一区二| 国内视频一区| 亚洲欧洲综合| 中国免费黄色片| 亚洲综合精品久久| 国产18精品乱码免费看| 欧美高清自拍一区| 日韩欧美中文字幕在线视频| avove在线观看| 国产麻豆一精品一av一免费| 影音先锋男人资源在线观看| 欧美日韩三级一区| 99re热久久这里只有精品34| 国产精品美腿一区在线看| av中文字幕一区二区| 一区二区三区视频网| 中文字幕第一区二区| 一级黄色片在线看| 久久精品视频在线播放| 日韩影片在线观看| 成年女人18级毛片毛片免费| 成人免费av资源| 色网站在线播放| 精品香蕉在线观看视频一| 超碰在线cao| 欧美亚州在线观看| 老司机精品视频在线| 日韩成人短视频| 精品国产3级a| 在线最新版中文在线| 欧洲国产精品| 久久av资源网| 国产一级片久久| 日韩精品在线观| 777午夜精品电影免费看| 一区二区在线高清视频| 国产一区二区三区精品视频| 日本少妇全体裸体洗澡| 亚洲人成啪啪网站| 亚洲精品aa| 国产无限制自拍| 久久女同性恋中文字幕| 中文字幕视频在线播放| 超碰97人人做人人爱少妇| 国产精品对白| 亚洲人成色77777| 亚洲乱码国产乱码精品精可以看| 日韩中文字幕观看| 成人h猎奇视频网站| 激情文学一区| 日本污视频网站| 欧美成人综合网站| free欧美| 国产成人一区二区三区别| 国产喷白浆一区二区三区| 亚洲va久久久噜噜噜无码久久| 欧洲日韩成人av| 亚洲人成免费网站| 精品无码人妻一区| 欧美一区二区三区影视| 日韩免费福利视频| 18禁裸男晨勃露j毛免费观看| 国产欧美日韩综合| 日韩性xxxx|