聊聊微服務
架構演變
單體架構: All in One,所有的功能模塊都在一個工程里。
SOA架構: 這個架構當不當正不正,對于現在來說,有點老,甚至需要ESB,WebService之類的,基本不會使用了。
微服務架構: 微服務架構思想是馬丁福勒提出的
https://martinfowler.com/articles/microservices.html
他的核心思想是這一段話:
In short, the microservice architectural style 1 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.
簡而言之,微服務架構風格1是一種將單個應用程序開發為一套小型服務的方法,每個服務都在自己的進程中運行,并與輕量級機制(通常是HTTP資源API)通信。這些服務圍繞業務能力構建,并可通過全自動部署機制獨立部署。這些服務的集中管理最低限度,這些服務可能用不同的編程語言編寫,并使用不同的數據存儲技術。
- 微服務架構是一個軟件架構風格,他不是標準。
- 將一個單體架構的產品拆分成多個服務,多個服務組成了完成的產品功能。
- 每個服務是可以完全獨立部署的,互不影響。
- 可以采用HTTP這種輕量級的方式實現服務之間的交互。
- 在拆分服務時,一般是按照產品的業務領域去劃分不同的服務,也可以針對單個功能做成一個服務。
- 采用DevOps的方式去做自動化部署。 (后面會學)
- 支持采用不用的語言去構建一個完整的產品。
微服務架構:是架構思想。
微服務:拆分出來的微小的服務,比如上圖中的商品服務就是一個微服務。
微服務框架:對微服務的架構思想落地的一些技術。
SpringCloud生態
官方地址: https://spring.io/projects/spring-cloud
咱們要學習SpringCloud生態里的幾個技術:
- SpringCloud Alibaba: Nacos
- SpringCloud:OpenFeign
- SpringCloud Alibaba:Sentinel
- SpringCloud:Gateway
- 鏈路追蹤:Sleuth + Zipkin - SkyWalking(不玩)
Ps:這里只關注應用,底層源碼之類的內容,這里不涉及。