回覆列表
  • 1 # 低迷的風向

    單元化架構是從平行計算領域發展而來。在分散式服務設計領域,一個單元(Cell)就是滿足某個分割槽所有業務操作的自包含的安裝。而一個分割槽(Shard),則是整體資料集的一個子集,如果你用尾號來劃分使用者,那同樣尾號的那部分使用者就可以認為是一個分割槽。單元化就是將一個服務設計改造讓其符合單元特徵的過程。

    在效能追求和成本限制的情況下,我們需要找到一種合適的方法來滿足服務需求。在傳統的分散式服務設計,我們考慮的更多是每個服務的可伸縮性,當各個服務獨立設計時你就要在每一層進行伸縮性的考慮。這是服務化設計(SOA)流行的原因,我們需要每個服務能夠單獨水平擴充套件。

    但是在摩爾定律下,隨著硬體的不斷升級,計算機硬體能力已經越來越強,CPU越來越快,記憶體越來越大,網路越來越寬。這讓我們看到了在單臺機器上垂直擴充套件的機會。尤其是當你遇到一個性能要求和容量增長可以預期的業務,單元化給我們提供另外的機會,讓我們可以有效降低資源的使用,提供更高效能的服務。

    總體而言,更高效能更低成本是我們的主要目標,而經過單元化改造,我們得以用更少(約二分之一)的機器,獲得了比原來更高(接近百倍)的效能。效能的提升很大部分原因在於服務的本地化,而服務的整合部署又進一步降低了資源的使用。

    當然除了效能收益,如果你做到了,你會發現還有很多收益,比如更好的隔離性,包括請求隔離和資源隔離,比如更友好的升級,產品可以灰度釋出等。單元化改造後對高峰的應對以及擴容方式等問題,各位可以參考#微博春節技術保障系列#中的單元化架構文章,也不在此一一贅述。

  • 中秋節和大豐收的關聯?
  • 畜禽引種應該注意哪些問題?