什麼是微服務

引用“大神”——馬丁·福勒對微服務特點的描述。

什麼是微服務

根據業務模塊劃分服務種類。 每個服務可以獨立部署並且互相隔離。 通過輕量的 API 調用服務。 服務需要保證良好的高可用性。

怎麼理解呢?以下是我的解讀:

按業務拆分服務,這是“垂直拆分”;在技術層面的“前後分離”,屬於“水平拆分”;橫縱一起切,就把單一的應用拆分成網狀的小塊應用,這是微服務中“微”思想的體現。

獨立部署與互相隔離,這點充分體現了“我為人人、人人為我”的設計理念,這是微服務中「服務」思想的體現。

關於輕量 API,微服務本身是推薦使用輕量的通訊協議和簡單的數據結構,實際上,實施環節通常採用的都是 http+json 的方式。

這樣做的好處是,服務之間不再需要關心對方的模型,僅通過事先約定好的接口來進行數據流轉即可。這是微服務中“解耦”思想的體現。

最後一點,比較通用了,就是現如今各種設計都必須考慮的事情。於是,我給微服務下了一個定義,如下圖:

什麼是微服務

要做好微服務,就要做好一定的準備工作。

從五個具體的方面來談:

業務拆分,體現在設計環節:在設計的時候,要有足夠的判斷力來合理的規劃服務之間的界限。

服務治理,底層技術的支持:首先要選一款適合自己實際情況的分佈式服務基礎框架,對於服務的發現、治理、熔斷、降級,都要做好相應的技術準備。

自動測試,一定要自動化。微服務一個明顯的表象就是隨著服務的增多,如果繼續沿用傳統的測試模式就會遇到瓶頸,為了保證高效的迭代,儘量做到更多的環節實現自動化。

自動運維 :微服務拆分之後,每個服務都可以獨立部署,進而言之應該是隨時隨地可以升級。尤其當互聯網發展到今天,業務要保持對市場變化的一個高效響應,自動化運維就是提升交付速度的一個重要環節。

監控:包括硬件環境、服務狀態、系統健康度、接口調用情況、異常的實時告警以及潛在問題的事先預警等等。監控在實施微服務過程中會重要到什麼程度呢?一句話:沒準備好監控,就不要搞微服務。

什麼是微服務

最後,微服務不是銀彈,軟件領域沒有銀彈,微服務以其特有的優勢在解決一些問題的同時,也引入了其他問題,以下這幾點,必須要深刻的思考,三思而後行。

什麼是微服務


分享到:


相關文章: