微服務學習-概念淺析

一、單體應用

  • 單體架構

一個war包打天下的應用架構,即爲單體應用。war包內包含所有的功能模塊,架構圖如下:

  •  單體架構的優點:

單體架構結構簡單,在項目初期能夠很好的滿足需求,而且開發測試運維非常方便。

  • 單體架構的缺點

單體應用部署慢、部署頻率低:隨着項目的迭代和功能的增加,代碼越來越多,構建和部署的時間也會相應的增加;每次功能的變更或缺陷修復都需要部署整個應用,全量部署的方法,耗時比較長,涉及範圍廣,上線風險比較大,從而導致部署頻率較低。

單體應用無法按需擴展:如某一功能模塊是IO密集型業務,達到性能瓶頸,無法拆分出來單獨部署擴展。

阻礙技術創新發展:如某應用非常龐大,而且使用技術比較老舊,使用新技術替換的成本是非常大的。

二、何爲微服務

微服務起源於Martin Fowler的 博客:https://www.martinfowler.com/articles/microservices.html

In short, the microservice architectural style  is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

微服務架構風格是一種將一個單一應用程序開發爲一組小型服務的方法,每個服務運行在自己的進程中,服務間通信採用輕量級通信機制(通常用HTTP資源API)。這些服務圍繞業務能力構建並且可通過全自動部署機制獨立部署。這些服務共用一個最小型的集中式的管理,服務可用不同的語言開發,使用不同的數據庫存儲技術。

微服務的核心思想是:分而治之。

三、微服務特性

  • 每個微服務可獨立運行在自己的進程中。

  • 一系列獨立運行的微服務共同構建起整個系統。

  • 每個微服務爲獨立的業務開發,只關注某個特定的功能。

  • 全自動機制(CI/CD)

  • 異構(不同的語言與數據存儲)

  • 輕量的通信機制

四、微服務架構

五、微服務的應用場景

  • 大型複雜應用。
  • 高併發、高負載應用。
  • 快速迭代。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章