麻豆一区二区-男人的天堂在线-精品视频免费观看-男男在线-超碰97av-国产一级网站-亚洲成人动漫在线观看-九九精品视频在线-偷拍视频一区-国产精品看片-久久91av-午夜男人网-日本特黄一级-亚洲专区第一页-夜夜高潮夜夜爽国产伦精品-久久精品国产亚洲av久-狠狠躁躁夜夜躁波多野结依-精品字幕-玉米地弄刘寡妇尖叫-草逼导航-青青伊人av-av直播在线观看-电影av在线-亚洲五月网-国产精品综合久久久-欧美一级黄色片视频-日韩在线视频在线观看-97久久国产亚洲精品超碰热-亚洲丝袜天堂-直播一级片

聯系電話: 18171260050

行業動態

  • 20,Apr,2022

為什么不建議把數據庫部署在Docker容器內

  Docker在過去ocker非常受歡迎。開發人員迫不及待地想將所有應用程序部署在Docker容器中,但你確定你也應該部署數據庫容器嗎?這個問題不是空的,因為你可以在網上找到很多操作手冊和視頻教程。這里整理了一些數據庫不適合容器化的原因供您參考。同時,我希望您在使用時能謹慎。到目前為止,將數據庫容器化是非常不合理的,但我相信所有開發人員都嘗到了容器化的優勢。我希望隨著技術的發展,能出現更完美的解決方案。

為什么不建議在Docker容器中部署數據庫?

部署數據庫的七個原因不適合Docker。

 1.不要將數據存儲在容器中,這也是Docker官方容器使用技能之一。容器可以隨時停止?;騽h除。當容器被RM丟失時,容器中的數據將丟失。為了避免數據丟失,用戶可以使用數據卷來存儲數據。然而,容器的Volumes設計是圍繞UnionFS鏡像層提供持久存儲,數據安全缺乏保證。如果容器突然崩潰,數據庫沒有正常關閉,數據可能會損壞。此外,容器中共享的數據卷對物理機器的硬件也有很大的損壞。即使你想將Docker數據存儲在主機中,它仍然不能保證不丟失數據。使用當前的存儲驅動程序,Docker仍然存在不可靠的風險。如果容器崩潰,數據庫沒有正確關閉,數據可能會損壞。

 2.眾所周知,MySQL是一個關系數據庫,對IO有很高的要求。當一臺物理機運行多次時,IO會累積,導致IO瓶頸,大大降低MySQL的讀寫性能。在Docker應用的十大難點特別節目中,一家國有銀行的一位架構師也提出:數據庫的性能瓶頸通常出現在IO上。如果遵循Docker的想法,許多docker最終的IO請求將再次出現在存儲上。現在互聯網上的大多數數據庫都是sharenothing的架構,這可能是一個不考慮遷移到docker的因素。

一些學生也可能有相應的解決性能問題的方案:

(1)數據庫程序與數據分離。

如果使用Docker運行MySQL,則需要將數據庫程序與數據分離,將數據存儲在共享存儲中,并將程序放入容器中。如果容器異?;騇ySQL服務異常,自動啟動新容器。此外,建議不要將數據存儲在宿主機中。宿主機和容器共享卷對宿主機的損壞有很大影響。

(2)運行輕量級或分布式數據庫。

Docker部署了輕量級或分布式數據庫。Docker本身建議掛斷服務,自動啟動新容器,而不是繼續重啟容器服務。

(3)合理布局應用。

對于IO要求較高的應用或服務,更適合在物理機或KVM中部署數據庫。目前TX云的TDSQL和阿里的Oceanbase直接部署在物理機上,而不是Docker。

3.如果你想了解Docker網絡,你必須對網絡虛擬化有深入的了解。數據庫需要特殊和持久的吞吐量來實現更高的負載。未解決的Docker網絡問題仍未在1.9版本中解決。將這些問題放在一起,容器化使數據庫容器難以管理。你需要多少時間來解決Docker網絡問題?把數據庫放在一個特殊的環境中不是更好嗎?節省時間專注于真正重要的業務目標。

4.在Docker中包裝無狀態服務非常酷,可以安排容器,解決單點故障問題。但是數據庫呢?將數據庫放置在同一環境中,它將處于狀態,并使系統故障范圍更大。下一次,您的應用程序實例或應用程序崩潰可能會影響數據庫。知識點:在Docker中,水平伸縮只能用于無狀態計算服務,而不是數據庫。Docker快速擴展的一個重要特點是無狀態。具有數據狀態的不適合直接放置在Docker中。如果數據庫安裝在Docker中,則需要單獨提供存儲服務。目前,TX云的TDSQL(金融分布式數據庫)和阿里云的Oceanbase(分布式數據庫系統)直接在物理機器上運行,而不是使用易于管理的Docker。

5.在資源隔離方面,Docker確實不如虛擬機KVM。Docker利用Cgroup實現資源限制。它只能限制資源消耗的最大值,而不能隔離其他程序來占用自己的資源。如果其他應用程序過渡占用物理機器資源,則會影響容器中MySQL的讀寫效率。隔離級別越高,資源成本就越高。與特殊環境相比,易于水平伸縮是Docker的一大優勢。然而,在Docker中,水平伸縮只能用于無狀態計算服務,不適用于數據庫。我們沒有看到任何數據庫隔離功能。我們為什么要把它放在容器里?

6.大多數人通過共享云開始項目。云簡化了虛擬機操作和更換的復雜性,因此沒有必要在夜間或周末測試新的硬件環境。當我們可以快速啟動一個例子時,為什么我們需要擔心這個例子的操作環境呢?這就是為什么我們向云提供商支付了大量的費用。當我們將數據庫容器放置為例子時,上述便利性并不存在。由于數據不一致,新的例子不會與舊的例子兼容。如果我們想限制單機服務的使用,我們應該讓DB使用非容器環境,我們只需要保持靈活擴展計算服務層的能力。

7.DBMS容器和其他服務經常在同一主機上運行。然而,這些服務對硬件有非常不同的要求。數據庫(特別是關系數據庫)對IO有很高的要求。一般數據庫引擎使用特殊環境,以避免并發資源競爭。如果將您的數據庫放入容器中,則將浪費您的項目資源。因為你需要為這個例子配置大量的額外資源。在公共云中,當您需要34G內存時,您必須打開64G內存。在實踐中,這些資源并沒有完全使用。如何解決它?您可以分層設計,并使用固定資源來啟動不同層次的多個例子。水平伸縮總是比垂直伸縮好。

綜上所述,對于上述問題,數據庫是否不能部署在容器中?答案是:我們不能將數據丟失和不敏感的業務(搜索。埋點)集成,并使用數據庫分片來增加實例數,從而增加吞吐量。docker適用于運行輕量級或分布式數據庫。當docker服務掛斷時,新容器將自動啟動,而不是繼續重新啟動容器服務。數據庫可以通過中間件和集成系統自動擴展。容災。切換。它有多個節點,也可以集成。


主站蜘蛛池模板: 黄色网战 | 高清欧美性猛交xxxx黑人猛交 | 亚洲视频在线免费观看 | 黄色在线网站 | 成人网站免费观看 | 日韩高清国产一区在线 | 麻豆精品久久久久久久99蜜桃 | 国产a视频 | 一区在线观看 | 欧美性生活视频 | 午夜精品视频 | 国产欧美在线观看 | 韩国禁欲系高级感电影 | 年轻善良的少妇 | 日韩三级视频 | 90岁肥老奶奶毛毛外套 | 国产精品乱码一区二区 | 黑人一级片 | 日韩国产欧美 | 欧美伊人 | 欧美视频一区二区三区 | 免费看裸体网站视频 | 黑人巨大猛烈捣出白浆 | 国产精品日韩无码 | av免费网站| 香蕉视频91| 精品无码国产一区二区三区51安 | 成人在线免费视频 | 中文字幕码精品视频网站 | 成人看片泡妞 | 黄色激情网站 | 国产一区二区三区视频 | 久草福利视频 | 乖…忍一下我就进一点视频 | 欧美精产国品一二三产品特点 | 青娱乐极品盛宴 | 亚洲天堂网站 | 色婷婷精品国产一区二区三区 | 伦理《法国护士长》观看 | 中文字幕人妻一区二区 | 午夜视频 | 黄色三级网站 | www.午夜 | 羞羞漫画在线观看 | 国产乱子伦 | 亚洲免费观看高清完整版在线观看 | 欧美大片18 | 影音先锋在线视频 |