微服務知識點

容器化部署

當我們使用了微服務架構後,我們將一個原本完整的系統,按照業務邏輯拆分成一個個可獨立運行的子系統。爲了降低系統間的耦合度,我們希望這些子系統能夠運行在獨立的環境中,這些環境之間能夠相互隔離。
在Docker出現之前,若使用虛擬機來實現運行環境的相互隔離的話成本較高,虛擬機會消耗較多的計算機硬件/軟件資源。Docker不僅能夠實現運行環境的隔離,而且能極大程度的節約計算機資源,它成爲一種輕量級的“虛擬機”。

自動化構建

當我們使用微服務架構後,隨着業務的逐漸發展,系統之間的依賴關係會日益複雜,而且各個模塊的構建順序都有所講究。對於一個小型系統來說,也許只有幾個模塊,那麼你每次採用人肉構建的方式也許並不感覺麻煩。但隨着系統業務的發展,你的系統之間的依賴關係日益複雜,子系統也逐漸增多,每次構建一下你都要非常小心謹慎,稍有不慎整個服務都無法正常啓動。而且這些構建的工作很low,但卻需要消耗大量的精力,這無疑降低了開發的效率。不過沒關係,Jenkins就是來幫助你解決這個問題的。
我們只需在Jenkins中配置好代碼倉庫、各個模塊的構建順序和構建命令,在以後的構建中,只需要點擊“立即構建”按鈕,Jenkins就會自動到你的代碼倉庫中拉取最新的代碼,然後根據你事先配置的構建命令進行構建,最後發佈到指定的容器中運行。你也可以讓Jenkins定時檢查代碼倉庫版本的變化,一旦發現變動就自動地開始構建過程,並且讓Jenkins在構建成功後給你發一封郵件。這樣你連“立即構建”的按鈕也不需要按,就能全自動地完成這一切構建過程。

微服務結構

微服務就是將一個完整的系統,按照業務功能,拆分成一個個獨立的子系統,在微服務結構中,每個子系統就被稱爲“服務”。這些子系統能夠獨立運行在web容器中,它們之間通過RPC方式通信。
假設需要開發一個在線商城。按照微服務的思想,我們需要按照功能模塊拆分成多個獨立的服務,如:用戶服務、產品服務、訂單服務、後臺管理服務、數據分析服務等等。這一個個服務都是一個個獨立的項目,可以獨立運行。如果服務之間有依賴關係,那麼通過RPC方式調用。
這樣的好處有以下幾點:
1.系統之間的耦合度大大降低,可以獨立開發、獨立部署、獨立測試,系統與系統之間的邊界非常明確,排錯也變得相當容易,開發效率大大提升。
2.系統之間的耦合度降低,從而系統更易於擴展。我們可以針對性地擴展某些服務。假設這個商城要搞一次大促,下單量可能會大大提升,因此我們可以針對性地提升訂單系統、產品系統的節點數量,而對於後臺管理系統、數據分析系統而言,節點數量維持原有水平即可。
3.服務的複用性更高。比如,當我們將用戶系統作爲單獨的服務後,該公司所有的產品都可以使用該系統作爲用戶系統,無需重複開發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章