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

數億數據MySQL撐不住,無縫遷移到MongoDB后穩得一批!

數據庫 新聞
合理選擇分片鍵和建立索引,會使你的查詢速度更快,這個要具體場景具體分析。

?一、問題

在好大夫在線內部,S3系統負責各業務方操作日志的集中存儲、查詢和管理。目前,該系統日均查詢量數千萬次,插入量數十萬次。隨著日志量的不斷累積,主表已經達到數十億,單表占用磁盤空間400G+。S3是業務早期就存在的系統,當時為了簡單快速落地,使用了Mysql來存儲,隨著業務的不斷增長,同時也要兼顧性能和可擴展性,到了必須要重新選型的時候了。

新項目命名為:LogStore。

二、目標

?1、安全性

S3系統在設計之初,沒有按業務系統考慮數據隔離,而是直接采用 key(系統 + 類名 + id) + 有限固定字段 + 序列化value 的方式進行存儲,這種方式顯然不便于后續集群拆分和管理。LogStore系統要在邏輯上進行數據區域劃分,業務方在接入時要指定app進行必要的權限驗證,以區分不同業務數據,進而再進行插入和查詢操作。

?2、通用性

S3主要提供一種3層結構,采用MySQL固定字段進行存儲,這就不可避免地會造成字段空間的浪費。LogStore系統需要提供一種通用的日志存儲格式,由業務方自行規定字段含義,并且保留一定程度的可查詢維度。

?3、高性能

S3系統的QPS在300+,單條數據最大1KB左右。LogStore系統要支持當前QPS 10倍以上的寫入和讀取速度。

?4、可審計

要滿足內部安全審計的要求,LogStore系統不提供對數據的更新,只允許數據的插入和查詢。

?5、易拓展

LogStore系統以及底層存儲要滿足可擴展特性,可以在線擴容,滿足公司未來5年甚至更長時間的日志存儲需求,并且要最大化節省磁盤空間。

三、方案選型

為了達成改造目標,本次調研了四種存儲改造方案,各種方案對比如下:

圖片

?1、我們不合適—分庫分表

分庫分表主要分為應用層依賴類中間件和代理中間件,無論哪種均需要修改現有PHP和Java框架,同時對DBA管理數據也帶來一定的操作困難。為了降低架構復雜度,架構團隊否定了引入DB中間件的方案,還是要求運維簡單、成本低的方案。

?2、我們不合適—TiDB

TiDB也曾一度進入了我們重點調研對象,只是由于目前公司的DB生態主要還是在MGR、MongoDB、MySQL上,在可預見的需求中,也沒有能充分發揮TiDB的場景,所以就暫時擱置了。

?3、我們不合適—ElasticSearch

ELK-stack提供的套件確實讓ES很有吸引力,公司用ES集群也有較長時間了。ES優勢在于檢索和數據分析領域,也正是因為其檢索和分析的功能的強大,無論寫入、查詢和存儲成本都比較高,在日志處理的這個場景下,性價比略低,所以也被pass了。

?4、適合的選擇—MongoDB

業務操作日志讀多寫少,很適合文檔型數據庫MongoDB的特點。同時,MongoDB在業界得到了廣泛的使用,公司也有很多業務在使用,在MongoDB上積累了一定的運維經驗,最終決定選擇MongoDB作為新日志系統存儲方案。

四、性能測試

為了驗證MongoDB的性能能否達到要求,我們搭建了MongoDB集群,機器配置、架構圖和測試結果如下:

?1、機器配置

MongoDB集群3臺機器配置如下:

圖片

?2、架構圖

圖片

?3、測試場景

本次MongoDB測試采用YCSB(https://github.com/brianfrankcooper/YCSB)性能測試工具,ycsb的workloads目錄下保存了6種不同的workload類型,代表了不同的壓測負載類型,本次我們只用到了其中5種,具體場景和測試結果如下。

圖片

1) 插入平均文檔大小為5K,數據量為100萬,并發100,數據量總共5.265G 左右,執行的時間以及磁盤壓力

結論:插入100w數據,總耗時219s,平均 insert 耗時21.8ms,吞吐量 4568/s

2) 測試90%讀,10%更新,并發100的場景

結論:總耗時236s,read 平均耗時23.6ms, update 平均耗時23.56ms,吞吐量達到 4225/s

3) 測試讀多寫少,100%讀 ,并發100的場景

結論:總耗時123s,平均read 耗時12.3ms,吞吐量達到8090/s

4) 測試讀多寫少,90%讀,10%插入,并發100的場景

結論:總耗時220s,read 平均耗時 21.9ms,insert 平均耗時21.9ms,吞吐量達到4541/s

5) 測試混合讀寫,50%讀,25%插入、25%更新,并發100的場景

結論:總耗時267s,read 平均耗時26.7ms,update  平均耗時26.7ms,insert  平均耗時26.6ms ,吞吐量 為3739/s

?4、測試結果對比

圖片

可以看出mongodb適合讀多寫少的時候,性能最好,讀寫速率能滿足生產需求。

五、無縫遷移實踐

為了保障業務的無縫遷移,也為了最大化降低業務研發同學的投入成本,我們決定采用分階段切換的方案。

?1、系統應用層改造+LogStore系統搭建

首先,在S3系統中內置讀開關和寫開關,可將讀寫流量分別引入到LogStore系統中,而新應用的接入可以直接調用LogStore系統,此時結構示意圖如下:

圖片

?2、增量數據同步

為了讓S3系統和LogStore系統中新增數據達到一致,在底層數據庫采用Maxwell訂閱MySQL Binlog的方式同步到MongoDB中,示意圖如下:

Maxwell(http://maxwells-daemon.io)實時讀取MySQL二進制日志binlog,并生成 JSON 格式的消息,作為生產者發送給 Kafka,Logstore系統消費Kafka中的數據寫入到mongodb數據庫中。

至此,對于業務方現有日志類型,新增數據在底層達到雙寫目的,S3系統和LogStore系統存儲兩份數據;如果業務方新增日志類型,則直接調用LogStore系統接口即可。接下來,我們將對已有日志類型老數據進行遷移。

圖片

?3、存量數據遷移

此次遷移S3老數據采用php定時任務腳本(多個)查詢數據,將數據投遞到RabbitMQ隊列中,LogStore系統從RabbitMQ隊列拉取消息進行消費存儲到MongoDB中,示意圖如下:

圖片

由于原mysql表中id為varchar類型并且非主鍵索引,只能利用ctime索引分批次進行查詢,數據密集處進行chunk投遞到mq隊列中。

  • 數據無法一天就遷移完,遷移過程中可能存在中斷的情況。腳本采用定時任務每天執行20h, 在上線時間停止執行,同時將停止時間記錄到Redis中。
  • 由于需要遷移數據量較大,在mq和消費者能承受的情況下,盡可能多地增加腳本數量,縮短導數據的時間。

  • 腳本執行期間,觀察業務延時情況和MySQL監控情況,發現有影響立即進行調整,以保障不影響正常業務。

?4、檢驗數據

老數據導入完成后,下面就要對老數據進行校驗,校驗從兩個方面進行: 數據量和數據完整性。

1)數據量

基于S3系統老數據的id, 查詢在MongoDB中是否存在,如果不存在則進行補償重發。

2)數據完整性

對于S3和MongoDB中的數據按照相同規則進行md5校驗,校驗不通過則進行補償重發。

圖片

?5、數據雙寫

將應用層預制的寫開關打開,將流量導入到LogStore中,此時mysql的流量并沒有停掉,繼續執行binlog同步。結構如下:

圖片

從圖中可以看到,從S3調用點的寫接口的流量都寫入到MongoDB數據庫backuplogs集合中,為什么不直接寫入到logs表中呢?留個小懸念,在后文中有解釋。

6、灰度切換S3讀到LogStore系統

上文我們提到,對于S3系統應用層讀寫調用點均分別內置了切換開關,打開應用層讀開關,所有的讀操作全部走LogStore, 切換后示意圖如下所示:

圖片

?7、灰度切換寫接口到LogStore系統

打開應用層寫開關,所有寫操作會通過mq異步寫到MongoDB中,那如何證明應用層寫調用點修改完全了呢?

上文中雙寫數據一份到logs表中,一份到backuplogs表中,通過Maxwell的Binlog同步的數據肯定是最全的,數據量上按理來說 count( logs) >= count(backuplogs), 如果兩個集合一段時間內的數據增量相同,則證明寫調用點修改完全,可以去掉雙寫,只保留LogStore這條線,反之需要檢查修改再次驗證。切換寫完成后,示意圖如下:

圖片

六、MongoDB與故障演練

故障演練能夠檢測服務是否真正高可用,及時發現系統薄弱的環節,提前準備好預案減少故障恢復時間。為了驗證MongoDB是否真正高可用,我們在線下搭建了MongoDB集群:

圖片

同時,我們編寫腳本模擬用戶MongoDB數據插入和讀取,基于好大夫在線自研故障演練平臺,對機器進行故障注入,查看各種故障對用戶的影響。故障演練內容CPU、內存、磁盤、網絡和進程Kill等操作,詳情如下圖所示:

圖片

實驗結果:

  • CPU、磁盤填充和磁盤負載對MongoDB集群影響較小。

  • 內存滿載可能會發生系統OOM,導致MongoDB進程被操作系統Kill,由于MongoDB存在數據副本和自動主從切換,對用戶影響較小。

  • 網絡抖動、延遲和丟包會導致mongos連接服務器時間變長,客戶端卡頓的現象發生,可通過網絡監控的手段監測。

  • 分別主動Kill掉MongoDB的主節點、從節點、仲裁節點、mongos、config節點,對整個集群影響較小。

整體而言,MongoDB存在副本和自動主從切換,客戶端存在自動檢測重連機制,單個機器發生故障時對整體集群可用性影響較小。同時,可增加對單機器的資源進行監控,達到閾值進行報警,減小故障發現和恢復時間。

七、總結

?1、MongoDB的使用

MongoDB數據寫入可能各個分片不均勻,此時可以開啟塊均衡策略;由于均衡器會增加系統負載,最好選擇在業務量較小的時候進行;

合理選擇分片鍵和建立索引,會使你的查詢速度更快,這個要具體場景具體分析。

?2、遷移數據

必須保留唯一標識數據的字段,最好是主鍵id,方便校驗數據;

一定要考慮多進程,腳本要自動化,縮短遷移時間和減小人工介入;

遷移過程中,要時刻關注數據庫、中間件及應用相關指標,防止導出導入數據影響正常業務;

要在同樣配置的環境下充分演練,提前制定數據比對測試用例,以防止數據丟失;

每一步線上操作(如切換讀寫),都要有對應的回滾計劃,最大限度降低對業務的影響。?

責任編輯:張燕妮 來源: HaoDF技術團隊
相關推薦

2020-11-16 11:30:34

MySQL數據庫MongoDB

2025-03-03 00:07:00

Spring項目部署

2021-08-05 15:03:16

愛奇藝大數據體系存儲

2024-01-10 11:56:51

SpringBootshell腳本命令

2021-07-09 18:26:41

PythonMySQL MongoDB

2011-05-11 10:26:36

MySQL數據庫無縫遷移

2017-10-20 08:45:15

數據庫MongoDBMySQL

2024-01-12 07:07:59

2019-03-25 12:20:29

數據MySQL性能測試

2020-04-20 08:08:23

MongoDBElasticsear數據庫

2020-04-13 08:46:22

MongoDBES服務器

2013-06-21 13:49:08

MariaDB

2018-08-20 09:11:14

企業專業能力

2020-01-20 09:49:58

華為騰訊百度

2021-11-29 22:39:39

引擎Flink架構

2024-08-22 14:16:08

2023-09-11 13:30:00

人工智能技術

2024-08-29 09:35:26

2010-04-21 10:58:35

互聯網

2018-07-20 09:24:37

人工智能創業人才
點贊
收藏

51CTO技術棧公眾號

欧美视频亚洲视频| 日韩欧美专区| 久久蜜桃一区二区| 国产精品免费久久久| 青青草华人在线视频| 日韩一级特黄| 亚洲午夜精品久久久久久久久| 成人三级在线| 日本熟妇一区二区三区| 亚洲不卡av不卡一区二区| 精品精品国产高清a毛片牛牛| 亚洲 欧美 日韩 国产综合 在线| 国产亚洲依依| 国产一区二区三区在线看麻豆| 精品中文字幕乱| 白丝女仆被免费网站| 亚洲图片小说区| 亚洲不卡在线观看| 亚洲一区3d动漫同人无遮挡 | 中国老熟女重囗味hdxx| 色是在线视频| 亚洲欧美色图小说| 青青成人在线| 后进极品白嫩翘臀在线视频| 老司机精品视频网站| 九九热这里只有精品6| 韩国三级hd中文字幕| 99re热精品视频| 欧美日韩黄色一区二区| 久久精品视频16| 在线中文免费视频| 欧美国产日韩亚洲一区| 懂色一区二区三区av片| 一级特黄aaa| 久久aⅴ国产紧身牛仔裤| 久久伊人精品视频| 少妇精品无码一区二区免费视频| 电影一区二区在线观看| 777xxx欧美| 美女一区二区三区视频| 美女的胸无遮挡在线观看| 亚洲精品综合在线| 亚洲一区免费看| sese一区| 国产偷国产偷精品高清尤物| 蜜桃av噜噜一区二区三区| 国产刺激高潮av| 国产精品一区久久久久| 日韩av手机在线观看| 中文字幕一区二区三区精品| 国模 一区 二区 三区| 久久中文久久字幕| 久久久久人妻一区精品色| 国产麻豆精品久久| 亚洲精品永久免费| 少妇精品一区二区三区| 欧美久久香蕉| 日韩精品视频在线| 亚洲欧美色图视频| 希岛爱理av免费一区二区| 亚洲精品国产精品自产a区红杏吧 亚洲精品国产精品乱码不99按摩 亚洲精品国产精品久久清纯直播 亚洲精品国产精品国自产在线 | 欧美激情xxxxx| 亚洲欧美小视频| 香蕉视频国产精品| 久久综合伊人77777| 亚洲一二三在线观看| 欧美aaaa视频| 久久精品国产亚洲精品2020| 国产在线免费av| 999国产精品视频| 久久精品视频在线| 五月天激情丁香| 欧美日韩福利| 久久久久久久久久久成人| 日韩免费一级片| 亚洲女同在线| 国产精品久久久999| 国产精品51麻豆cm传媒| 久久成人18免费观看| 成人欧美一区二区三区黑人孕妇 | 日本在线免费观看一区| 国产私人尤物无码不卡| 国产精品少妇自拍| 一道本在线观看视频| 色操视频在线| 欧美日韩精品在线观看| 91激情视频在线| 91久久青草| 欧美大片在线观看| v8888av| 不卡中文字幕| 九九久久久久久久久激情| 97超碰人人干| 久久精品国产久精国产| 97碰碰视频| 欧美美女搞黄| 亚洲丝袜精品丝袜在线| 国产精品www在线观看| 欧美黑人粗大| 欧美一区二区在线不卡| 99久久人妻精品免费二区| 欧美精选视频在线观看| 久久精品国亚洲| 久草精品视频在线观看| 日本中文字幕一区二区有限公司| 亚洲精品免费网站| 青青色在线视频| 亚洲精品自拍动漫在线| 欧美成人xxxxx| 自拍偷拍亚洲| 亚洲精品资源美女情侣酒店| 精品伦精品一区二区三区视频密桃| 韩国久久久久| 国产日本欧美视频| 香蕉视频黄在线观看| 国产精品久久久久久户外露出| www污在线观看| 欧美成人毛片| 日韩毛片在线观看| 黄色一级片中国| 首页综合国产亚洲丝袜| 91成人在线看| 在线观看免费版| 色综合久久中文综合久久97| 爱情岛论坛亚洲自拍| 欧美精品一区二区三区精品| 性色av一区二区三区在线观看| 在线视频你懂得| 久久亚区不卡日本| 大地资源网在线观看免费官网 | 国产精品综合久久久| 四虎精品一区二区三区| 亚洲精品成人天堂一二三| 九热视频在线观看| 亚洲人亚洲人色久| 91黑丝在线观看| 亚洲成人第一区| 自拍av一区二区三区| mm1313亚洲国产精品无码试看| 牛牛精品成人免费视频| 欧美精品videossex性护士| 一炮成瘾1v1高h| 国产精品女主播av| 亚洲一区二区三区四区五区xx| 里番精品3d一二三区| 久久久久久久久中文字幕| www.我爱av| 亚洲黄色av一区| 制服丝袜中文字幕第一页| 欧美日韩国产传媒| 全亚洲最色的网站在线观看| 四虎影院在线播放| 偷拍亚洲欧洲综合| 漂亮人妻被黑人久久精品| 亚洲高清资源| 国产亚洲第一区| 国产精品蜜臀| 日韩电影免费观看中文字幕| 国产 欧美 日韩 在线| av一区二区三区黑人| av高清在线免费观看| 鲁大师精品99久久久| 97在线免费视频| 香蕉国产在线视频| 疯狂做受xxxx欧美肥白少妇| 亚洲av无码成人精品国产| 午夜在线精品偷拍| 日本不卡一区二区三区视频| 日本综合久久| 俺去啦;欧美日韩| 国产青青草视频| 一区二区在线电影| 亚洲久久久久久| 性娇小13――14欧美| 日韩wuma| 电影中文字幕一区二区| 精品中文字幕视频| 无码精品人妻一区二区| 欧美性猛交丰臀xxxxx网站| 蜜桃传媒一区二区亚洲| 另类中文字幕网| 少妇一晚三次一区二区三区| 超碰成人97| 日韩av电影国产| 日本在线免费网| 欧美r级电影在线观看| 麻豆久久久久久久久久| 欧美激情自拍偷拍| 国产亚洲色婷婷久久| 亚洲精品麻豆| 亚洲成人18| avtt综合网| 国产成人精品在线观看| 巨大荫蒂视频欧美大片| 亚洲精品动漫久久久久| 国产亚洲久一区二区| 亚洲精品成a人| 西西444www无码大胆| 久久99国产精品麻豆| 男人天堂a在线| 青青草91久久久久久久久| av一区二区三区四区电影| 中文av在线全新| 久久精品国产精品亚洲| 少妇一级淫片免费看| 欧美日韩三级一区二区| 日韩成人免费在线观看| 国产精品日产欧美久久久久| 美女扒开腿免费视频| 蜜桃免费网站一区二区三区| 欧美视频在线观看视频| 色喇叭免费久久综合网| 精品一卡二卡三卡四卡日本乱码 | 99精品国产在热久久| 一区二区三区免费看| 国产丝袜一区| 91在线观看免费网站| 欧美xxxx做受欧美护士| 海角国产乱辈乱精品视频| 日本免费在线观看| 亚洲欧美精品伊人久久| 亚洲不卡免费视频| 欧美精品 日韩| 久久精品五月天| 红桃av永久久久| 91porn在线视频| 国产精品久久久久影视| 欧美黑人欧美精品刺激| 国产精品99久久久久久宅男| 男女爽爽爽视频| 久久不射网站| 极品美女扒开粉嫩小泬| 一区二区在线| 亚洲资源视频| 日韩片欧美片| 水蜜桃亚洲精品| 麻豆成人入口| 国产精品一区二区在线观看 | 国产综合色一区二区三区| 亚洲精品tv| 国产女人精品视频| 69堂精品视频在线播放| 日本在线观看天堂男亚洲| freexxx性亚洲精品| 欧美激情极品视频| 超碰在线网址| 美女精品久久久| 精品国产99久久久久久| 日韩中文字幕国产| av男人的天堂在线| 一本一本久久a久久精品牛牛影视| 香蕉视频免费看| 亚洲精品720p| 亚洲 精品 综合 精品 自拍| 精品成a人在线观看| 成人毛片在线精品国产| 精品国产三级a在线观看| 亚洲精品人妻无码| 欧美精品一区二区精品网| 亚洲精品久久久狠狠狠爱| 亚洲国产99精品国自产| 后进极品白嫩翘臀在线视频| 亚洲国产成人av在线| 五月婷婷丁香网| 亚洲欧美综合图区| 1769在线观看| 美女久久久久久久久久久| 丁香花在线高清完整版视频| 55夜色66夜色国产精品视频| 欧美大片免费高清观看| 国产精品久久久久久久久久| 日韩国产91| 粉嫩av免费一区二区三区| 麻豆精品少妇| 亚洲国产一区二区精品视频 | 中国一区二区视频| 欧美色手机在线观看| 97成人在线观看| 欧美成人一区二区三区片免费| 成人午夜视频一区二区播放| 日韩精品在线观看一区二区| 高清中文字幕一区二区三区| 久久久精品视频成人| 国产盗摄精品一区二区酒店| 欧美一级大胆视频| 欧美电影在线观看网站| av成人免费观看| 中文精品一区二区| 一区二区三区在线观看www| 欧美色图麻豆| 蜜臀久久99精品久久久酒店新书| 久久精品国产精品亚洲精品| 亚洲av成人精品一区二区三区 | 精品久久免费看| 欧美精品久久久久久久久久丰满| 日韩视频―中文字幕| 成人性生交大片免费看网站| 国产成人亚洲综合91精品| 国模大尺度视频一区二区| 精品久久久久久乱码天堂| 日韩理论在线| 国产美女网站在线观看| 久久精品免费观看| 污片免费在线观看| 17c精品麻豆一区二区免费| 国产精品黄色网| 欧美一区二区三区在线观看| 九一国产在线| 欧美极品欧美精品欧美视频| 成人全视频免费观看在线看| 国产精品久久国产三级国电话系列 | 亚洲一区二区三区四区五区午夜| 日本国产一级片| 久久日一线二线三线suv| 真实国产乱子伦对白在线| 色婷婷精品久久二区二区蜜臀av| www.五月激情| www.国产一区| 欧美性片在线观看| 久久久久高清| 国内精品久久久久久久影视蜜臀| 欧美午夜性生活| 久久综合五月天婷婷伊人| 免费在线看黄网址| 91精品国产色综合久久| 成人资源www网在线最新版| 午夜精品一区二区三区在线 | 精品国产乱码久久久久软件| 欧美88av| www.污污视频| 国产欧美视频一区二区三区| 黄色大片网站在线观看| 精品欧美一区二区三区精品久久| 日本在线播放| 国产精品丝袜久久久久久高清| 欧美禁忌电影网| 国产午夜伦鲁鲁| 成人精品国产一区二区4080 | 欧美午夜视频在线观看| 亚洲精品久久久狠狠狠爱| 欧美人在线视频| 久久国产精品美女| 日本一级淫片演员| 久久99久久久久| 日韩在线不卡av| 欧美日韩国产高清一区二区三区 | 国产欧美日韩激情| 亚洲不卡在线视频| 亚洲欧洲日韩国产| 写真福利精品福利在线观看| 蜜桃视频成人| 久久久久久亚洲精品杨幂换脸| 久久久久亚洲av无码专区桃色| 日韩欧美在线一区| 可以免费看污视频的网站在线| 57pao国产精品一区| 五月天亚洲一区| 精品久久久久久久无码| 国产亚洲精品精华液| 国产成人a v| 色哟哟亚洲精品一区二区| 成人黄色在线| 男女啪啪的视频| 国产成人h网站| 日本熟伦人妇xxxx| 亚洲精品乱码久久久久久金桔影视| 日本а中文在线天堂| 欧美极品日韩| 免费精品视频最新在线| 91视频青青草| 精品国产露脸精彩对白| 超碰成人av| 日韩高清专区| 国产真实精品久久二三区| a级黄色片免费看| 亚洲精品97久久| 成人自拍视频网| 久久久久久久免费视频| 成人黄色网址在线观看| 特级毛片www| 日韩在线中文字幕| jizz国产精品| 黄色高清无遮挡| 亚洲美女偷拍久久| 天堂av在线资源| 国产精品专区一| 亚洲青色在线| 国产一区二区三区四区五区六区 | 亚洲免费观看高清在线观看| 六月婷婷综合网| 国产精品久久久久77777| 91精品电影| 极品人妻一区二区三区| 欧美日韩国产精选| 美女搞黄视频在线观看| 亚洲欧美日韩在线综合 | 三级网站在线免费观看| 欧美精品1区2区3区| 在线最新版中文在线| 手机在线视频你懂的|