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

中臺數據庫設計:我選MongoDB,毅然放棄MySQL

數據庫 MySQL 中臺 MongoDB
本文主要講述 vivo 評論中臺在數據庫設計上的技術探索和實踐。隨著公司業務發展和用戶規模的增多,很多項目都在打造自己的評論功能,而評論的業務形態基本類似。

本文主要講述 vivo 評論中臺在數據庫設計上的技術探索和實踐。

[[387706]]

一、業務背景

隨著公司業務發展和用戶規模的增多,很多項目都在打造自己的評論功能,而評論的業務形態基本類似。當時各項目都是各自設計實現,存在較多重復的工作量;并且不同業務之間數據存在孤島,很難產生聯系。因此我們決定打造一款公司級的評論業務中臺,為各業務方提供評論業務的快速接入能力。在經過對各大主流 APP 評論業務的競品分析,我們發現大部分評論的業務形態都具備評論、回復、二次回復、點贊等功能。

具體如下圖所示:

涉及到的核心業務概念有:

  • 【主題 topic】評論的主題,商城的商品、應用商店的 APP、社區的帖子
  • 【評論 comment】用戶針對于主題發表的內容
  • 【回復 reply】用戶針對于某條評論發表的內容,包括一級回復和二級回復

二、數據庫存儲的選擇

團隊在數據庫選型設計時,對比了多種主流的數據庫,最終在 MySQL 和 MongoDB 兩種存儲之進行抉擇。

由于評論業務的特殊性,它需要如下能力:

  • 【字段擴展】業務方不同評論模型存儲的字段有一定差異,需要支持動態的自動擴展。
  • 【海量數據】作為公司中臺服務,數據量隨著業務方的增多成倍增長,需要具備快速便捷的水平擴展和遷移能力。
  • 【高可用】作為中臺產品,需要提供快速和穩定的讀寫能力,能夠讀寫分離和自動恢復。

而評論業務不涉及用戶資產,對事務的要求性不高。因此我們選用了 MongoDB 集群 作為最底層的數據存儲方式。

三、深入了解 MongoDB

1.集群架構

由于單臺機器存在磁盤/IO/CPU等各方面的瓶頸,因此以 MongoDB 提供集群方式的部署架構,如圖所示:

主要由以下三個部分組成:

  • mongos:路由服務器,負責管理應用端的具體鏈接。應用端請求到mongos服務后,mongos把具體的讀寫請求轉發到對應的shard節點上執行。一個集群可以有1~N個mongos節點。
  • config:配置服務器,用于分存儲分片集合的元數據和配置信息,必須為 復制集(關于復制集概念戳我) 方式部署。mongos通過config配置服務器合的元數據信息。
  • shard:用于存儲集合的分片數據的mongod服務,同樣必須以 復制集 方式部署。

2.片鍵

MongoDB 數據是存在collection(對應 MySQL表)中。集群模式下,collection按照 片鍵(shard key)拆分成多個區間,每個區間組成一個chunk,按照規則分布在不同的shard中。并形成元數據注冊到config服務中管理。

分片鍵只能在分片集合創建時指定,指定后不能修改。分片鍵主要有兩大類型:

  • hash分片:通過hash算法進行散列,數據分布得更加平均和分散。支持單列和多列hash。
  • 范圍分片:按照指定片鍵的值分布,連續的key往往分布在連續的區間,更加適用范圍查詢場景。單數據散列性由分片鍵本身保證。

3.評論中臺的實踐

1)集群的擴展

作為中臺服務,對于不同的接入業務方,通過表隔離來區分數據。以comment評論表舉例,每個接入業務方都單獨創建一張表,業務方A表為 comment_clientA ,業務方B表為 comment_clientB,均在接入時創建表和相應索引信息。但只是這樣設計存在幾個問題:

單個集群,不能滿足部分業務數據物理隔離的需要。

集群調優(如split遷移時間)很難業務特性差異化設置。

水平擴容帶來的單個業務方數據過于分散問題。

因此我們擴展了 MongoDB的集群架構:

擴展后的評論MongoDB集群 增加了 【邏輯集群】和【物理集群】的概念。一個業務方屬于一個邏輯集群,一個物理集群包含多個邏輯集群。

增加了路由層設計,由應用負責擴展Spring的MongoTemplate和連接池管理,實現了業務到MongoDB集群之間的切換選擇服務。

不同的MongoDB分片集群,實現了物理隔離和差異調優的可能。

2)片鍵的選擇

MongoDB集群中,一個集合的數據部署是分散在多個shard分片和chunk中的,而我們希望一個評論列表的查詢最好只訪問到一個shard分片,因此確定了 范圍分片 的方式。

起初設置只使用單個key作為分片鍵,以comment評論表舉例,主要字段有{"_id":唯一id,"topicId":主題id,"text":文本內容,"createDate":時間} ,考慮到一個主題id的評論盡可能連續分布,我們設置的分片鍵為 topicId。隨著性能測試的介入,我們發現了有兩個非常致命的問題:

jumbo chunk問題

唯一鍵問題

jumbo chunk:

  • 官方文檔中,MongoDB中的chunk大小被限制在了1M-1024M。分片鍵的值是chunk劃分的唯一依據,在數據量持續寫入超過chunk size設定值時,MongoDB 集群就會自動的進行分裂或遷移。而對于同一個片鍵的寫入是屬于一個chunk,無法被分裂,就會造成 jumbo chunk 問題。

舉例,若我們設置1024M為一個chunk的大小,單個document 5KB計算,那么單個chunk能夠存儲21W左右document。考慮熱點的主題評論(如微信評論),評論數可能達到40W+,因此單個chunk很容易超過1024M。超過最大size的chunk依然能夠提供讀寫服務,只是不會再進行分裂和遷移,長久以往會造成集群之間數據的不平衡。

唯一鍵問題:

  • MongoDB 集群的唯一鍵設置增加了限制,必須是包含分片鍵的;如果_id不是分片鍵,_id索引只能保證單個shard上的唯一性。
  • You cannot specify a unique constraint on a hashed index
  • For a to-be-sharded collection, you cannot shard the collection if the collection has other unique indexes
  • For an already-sharded collection, you cannot create unique indexes on other fields
  • 因此我們刪除了數據和集合,調整 topicId 和 _id 為聯合分片鍵 重新創建了集合。這樣即打破了chunk size的限制,也解決了唯一性問題。

4.遷移和擴容

隨著數據的寫入,當單個chunk中數據大小超過指定大小時(或chunk中的文件數量超過指定值)。MongoDB集群會在插入或更新時,自動觸發chunk的拆分。

拆分會導致集合中的數據塊分布不均勻,在這種情況下,MongoDB balancer組件會觸發集群之間的數據塊遷移。balancer組件是一個管理數據遷移的后臺進程,如果各個shard分片之間的chunk數差異超過閾值,balancer會進行自動的數據遷移。

balancer是可以在線對數據遷移的,但是遷移的過程中對于集群的負載會有較大影響。一般建議可以通過如下設置,在業務低峰時進行(更多見官網)

MongoDB的擴容也非常簡單,只需要準備好新的shard復制集后,在 Mongos節點中執行:

擴容期間因為chunk的遷移,同樣會導致集群可用性降低,因此只能在業務低峰進行

四、寫在最后

MongoDB集群在評論中臺項目中已上線運行了一年多,過程中完成了約10個業務方接入,承載了1億+評論回復數據的存儲,表現較為穩定。BSON非結構化的數據,也支撐了我們多個版本業務的快速升級。而熱門數據內存化存儲引擎,較大地提高了數據讀取的效率。

但對于MongoDB來說,集群化部署是一個不可逆的過程,集群化后也帶來了索引,分片策略等較多的限制。因此一般業務在使用MongoDB時,副本集方式就能支撐TB級別的存儲和查詢,并非一定需要使用集群化方式。

以上內容基于MongoDB 4.0.9版本特性,和最新版本的MongoDB細節上略有差異。

 

責任編輯:未麗燕 來源: vivo互聯網技術
相關推薦

2018-12-21 11:26:49

MySQLMongoDB數據庫

2010-05-25 09:29:04

MySQL數據庫

2023-08-27 21:51:50

Kafka數據庫數據存儲

2019-01-02 11:10:40

MySQL數據庫數據庫設計

2012-06-11 18:07:03

2017-09-26 13:35:40

Mysql數據庫設計樹狀數據

2025-08-06 11:22:54

2011-03-03 10:31:42

數據庫

2010-07-11 18:42:17

CassandraTwitter

2009-12-02 10:33:34

LINQ to SQL

2017-04-24 11:01:59

MySQL數據庫架構設計

2021-05-20 07:47:49

數據庫MySQL 數據庫安裝

2015-07-14 17:12:49

2018-09-11 17:13:23

MySQ數據庫重復記錄

2011-03-10 11:12:59

數據庫

2011-03-10 11:17:03

數據庫設計技巧

2011-04-15 13:28:44

數據庫設計

2010-08-26 14:16:18

DB2.NET開發

2021-02-05 10:58:28

數據存儲架構

2011-04-15 11:29:31

數據庫設計
點贊
收藏

51CTO技術棧公眾號

奇米网一区二区| 午夜欧美巨大性欧美巨大| 亚洲精品不卡| 91福利资源站| 欧美人妖在线观看| 国产一卡二卡在线播放| 成人在线播放av| 中文字幕一区二区三区不卡| 亚洲成人av观看| 国产精品久久免费观看| 国产成人久久精品| 久久亚洲一区二区三区四区| 免费不卡av| 深夜做爰性大片蜜桃| 久久在线精品视频| 国产91精品欧美| h片在线观看| 亚洲熟女一区二区| 国产成人精品久久久| 久久精品欧美一区二区三区不卡 | 国产一区日韩二区欧美三区| 91精彩在线视频| 久久综合桃花网| 91爱视频在线| 国产亚洲欧美一区在线观看| 欧美电影在线观看网站| 久久久久久久久久97| 国产精品v欧美精品v日韩| 五月综合激情网| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲图片中文字幕| 黄色网zhan| 亚洲理论在线a中文字幕| 久热成人在线视频| 成人在线免费观看黄色| youjizz亚洲女人| 亚洲自拍小视频| 日本精品一区二区三区高清| 一本一本久久a久久综合精品| 一级久久久久久| 神马午夜伦理影院| 国产亚洲精品美女| 成人av免费在线观看| 黄色精品视频| jizz国产在线观看| av女优在线播放| 欧美成人久久久| 国产欧美日韩另类一区| 亚洲专区视频| 色综合888| 欧美熟妇精品黑人巨大一二三区| 91免费国产网站| 这里只有精品免费| 美女精品自拍一二三四| 成人短视频app| 日韩精品在线观看免费| a在线视频观看| 欧美在线视频免费观看| 精品久久久久久久久国产字幕| 激情偷拍久久| 欧美人与性动交α欧美精品图片| 欧美日韩大片在线观看| 91制片厂免费观看| 久久天天躁狠狠躁夜夜躁2014| 国产精品毛片大码女人| 91欧美日韩| 四虎影院观看视频在线观看 | 日韩高清在线观看一区二区| 99热在线只有精品| 中文字幕人妻熟女在线| 久久久久久亚洲精品不卡4k岛国 | 在线观看视频一区二区| 人人爽香蕉精品| 欧美久久一区二区三区| 视频一区二区三区在线看免费看| 免费黄色在线视频| 亚洲综合首页| 久久免费精品视频| 欧美在线色视频| 国产在线精品不卡| 国产免费久久| 日韩123区| 国产日韩久久久| 最好看的中文字幕| 午夜精品短视频| 国内精品400部情侣激情| 欧美视频在线播放| av在线播放成人| 五月激情综合| 成人免费网站www网站高清| 国产区精品在线| 蜜乳av中文字幕| 欧美激情视频免费看| 91精品视频大全| 中文亚洲视频在线| 一本久道中文字幕精品亚洲嫩| 国产成人亚洲综合a∨婷婷图片| 国产一区2区| av免费在线网站| 这里只有久久精品视频| 一级片手机在线观看| 日韩a级在线观看| 91精品国产91久久久久青草| 久热精品在线视频| 4438亚洲最大| 亚洲色图第一区| 久久av老司机精品网站导航| 欧美xxxx免费虐| 亚洲自拍第二页| 开心激情五月网| 一二三av在线| 亚洲黄色网址在线观看| 国产精品美女诱惑| 国语自产精品视频在线看一大j8| 亚洲激情 国产| 欧美性猛交xxxx免费看| 中文天堂在线一区| 国产综合色在线视频区| 伊人精品成人久久综合软件| 噜噜噜天天躁狠狠躁夜夜精品| 亚洲天堂免费电影| 岛国在线视频免费看| 国产精品羞羞答答在线| 久久精品欧美一区二区| 成人性生交大免费看| 91精品国产三级| 黄黄视频在线观看| 国产精品久久久久久久av电影| 青青草国产成人99久久| 亚洲最大的免费视频网站| 国产在线看片| 四虎成人免费在线| 国产黄色av片| 中文字幕av网站| 国产手机在线视频| 日本精品在线免费观看| 国产成人无码一区二区在线观看| 777一区二区| 欧美aⅴ在线观看| 300部国产真实乱| 先锋影音网一区| 久久福利电影| 粉嫩高清一区二区三区精品视频 | 国产一级久久久| 少妇视频一区二区| 欧美性xxxx图片| 亚洲美女高潮久久久| 91精品无人成人www| 免费av观看网址| 久久99久久99精品| 超薄肉色丝袜足j调教99| 亚洲视频导航| 亚洲乱码一区二区三区三上悠亚| 美日韩免费视频| 精品久久久久久亚洲| 成人久久18免费网站漫画| 成人性生交大片免费观看嘿嘿视频| 国产成人一区二区| 国产精品9999| 国产精品精品一区二区三区午夜版| 性视频1819p久久| 午夜精品一区二区三区在线| 午夜精品免费视频| 日本一区二区不卡| 国产精品久久久久久av| 国产欧美在线观看| 91视频99| 国产精品自拍首页| 美乳视频一区二区| 一区二区免费在线观看| 国产欧美123| 国产精品视频一区二区三区四区五区| 久久国产成人精品国产成人亚洲| 久久久久久久久久久久久国产精品| www日韩视频| 亚洲精品国产一区二区三区| 成年人小视频在线观看| 最近中文字幕免费视频| 三级黄色在线观看| 欧美特黄aaaaaa| 国产一区二区麻豆| 色呦呦免费观看| 欧美天天影院| 性xxxxfreexxxxx欧美丶| 日本一区二区三区中文字幕| 久久动漫网址| 亚洲精品888| 久久久成人网| www.亚洲免费av| 亚洲少妇最新在线视频| 色天天综合久久久久综合片| 精品久久久久久久人人人人传媒| 亚洲跨种族黑人xxx| 久久99精品久久久久久琪琪| 国产精品一区二区三区免费视频| 国产精品一区二区不卡视频| 在线免费观看成人| 欧美三级午夜理伦三级| 男人的天堂影院| 九九视频在线观看| 亚洲无码久久久久| 香蕉视频在线播放| 色综合天天色| av中文字幕一区二区| 久久精品一区二区国产| 2欧美一区二区三区在线观看视频| 亚洲国产色一区| 欧美mv日韩mv国产网站| 97成人在线视频| 久草精品电影| 亚洲综合在线网站| 色噜噜噜噜噜噜| 亚洲一区二区人妻| 四虎亚洲精品| 国产毛片久久久| 日韩极品在线观看| 中文字幕亚洲成人| 日韩精品一区二区在线| 国语自产精品视频在线看| 精品国产乱码久久久久| 麻豆av免费在线| 中文字幕在线观看二区| 亚洲爱情岛论坛永久| 欧美激情网站| 五月开心六月丁香综合色啪| 粉嫩嫩av羞羞动漫久久久| 婷婷中文字幕综合| www.日韩系列| 久久偷窥视频| 亚洲最大视频网| 无码人妻精品一区二区三区9厂| 日本激情视频在线观看| 亚洲精选av| 美国毛片一区二区三区| 天天射综合影视| 久久精品亚洲精品| 日本一区二区三区精品视频| 无码人妻丰满熟妇区毛片蜜桃精品 | 777色狠狠一区二区三区| 欧美国产极速在线| 亚洲一区二区精品在线| 久久久亚洲av波多野结衣| 亚洲国产精品久久久久爰性色| 日本成人伦理电影| 亚洲综合国产激情另类一区| 一区二区三区在线影院| 中文字幕亚洲天堂| 欧美美乳视频网站在线观看| 不卡的一区二区| 国产av一区二区三区| 国产成人精选| 久久精品理论片| 欧美视频在线一区| 国产成人亚洲综合91| 777久久久精品一区二区三区| 日韩三级视频在线播放| √天堂8在线网| 欧美粗暴jizz性欧美20| 亚洲欧美韩国综合色| 久久精彩免费视频| 五月天激情图片| 久久在线视频精品| 9lporm自拍视频区在线| 国产精品一页| 色婷婷一区二区三区四区| 国产精品爽爽爽| 涩涩网站在线看| 四虎在线视频免费观看| 丝袜久久网站| 国产精品国产精品国产专区不片| 俺去啦;欧美日韩| 久久亚洲国产成人精品无码区| 日韩高清免费av| 欧美不卡高清一区二区三区| 韩国一区二区三区| 亚洲精品二三区| 亚洲欧洲在线一区| 日本三级午夜理伦三级三| 经典三级一区二区| 成人一级黄色片| 伊人久久久久久久久久久久久 | 97人妻一区二区精品免费视频| 欧美午夜网站| 久久久噜噜噜久噜久久综合| 久久影视电视剧免费网站| 日本久久久精品视频| 国产夫妻自拍av| 日韩中字在线| 色偷偷一区二区三区| 91在线观看网站| 亚欧精品视频一区二区三区| 国产高清中文字幕在线| 久久精品久久99精品久久| 亚洲人成网在线播放| 久艹在线免费观看| www.97av.com| 欧美hd在线| 欧美日韩精品一区二区在线播放| 好看的日韩精品视频在线| 久久久久久激情| 999精品嫩草久久久久久99| 国产精品三级av在线播放| 69影院欧美专区视频| 国产精品探花一区二区在线观看| 羞羞视频在线免费国产| 国产成人在线视频播放| 欧美成人精品xxx| 能看毛片的网站| 678在线观看视频| 91在线精品一区二区| 97**国产露脸精品国产| av男人的天堂av| 欧洲av不卡| 中文字幕中文在线不卡住| 成人国产精品日本在线| 黄色一级片中国| 99国产精品久久一区二区三区| 亚洲主播在线播放| 久久影视中文粉嫩av| 中文亚洲av片在线观看| 四虎8848精品成人免费网站| 日韩一区二区在线看片| 日b视频免费观看| 内衣办公室在线| 另类的小说在线视频另类成人小视频在线 | 国产一二三区在线播放| 午夜福利一区二区三区| 日韩 欧美一区二区三区| 欧美黑人性生活视频| 法国伦理少妇愉情| 麻豆国产精品| 色网综合在线观看| 成人高清dvd| 91se在线| 91丨porny丨最新| 91九色蝌蚪嫩草| 国产精品国产精品国产| 欧美久久一区| 久久精品中文字幕免费mv| 亚洲欧美日本一区| 亚洲国产中文在线| 欧美网站一区二区| 久久久久免费精品| 欧美女优在线观看| 欧美gay男男猛男无套| 欧美男生操女生| 久久免费看毛片| 都市激情一区| 性の欲びの女javhd| 日本中文字幕电影在线观看| 国产成人精品影院| 91精品久久久久久久久| 久久久久久在线观看| 国产精品丝袜xxxxxxx| 韩剧1988在线观看免费完整版| 国产在线视频欧美一区| 99re亚洲国产精品| 国产在线一区二| 亚洲精品免费在线观看视频| 精品产国自在拍| 亚洲区中文字幕| 国产美女免费网站| 日韩www.| 欧美老女人xx| 国产无精乱码一区二区三区| 伊人久久大香线蕉综合热线| 97在线视频免费看| 久久精品视频5| 极品美女销魂一区二区三区免费| 成人午夜黄色影院| 亚洲第一色视频| 2欧美一区二区三区在线观看视频| 欧美日韩精品免费在线观看视频| 国产永久免费高清在线观看| 中文字幕一区二区三| 免费看日本黄色| gogo亚洲高清大胆美女人体| 欧美日韩高清一区二区| 亚洲一二三四五| 日韩欧美高清在线播放| 午夜精品理论片| 国产又大又黑又粗| 91视频国产资源| 精品一区二区三区毛片| 性欧美hd调教| 精品福利视频一区二区三区| 国产jjizz一区二区三区视频| 欧美精品激情| 成人福利在线视频| av资源网站在线观看| 精品久久久久久久久久ntr影视| 国产精品91av| 天天综合久久| 国产日韩欧美91| 国产福利在线| 狠狠爱在线视频一区| 99久久久无码国产精品性波多| 91精品亚洲| 91精品在线观| 18加网站在线|