微服務入門篇

本篇筆者將從以下幾點來講解微服務的入門知識點。

單體架構

什麼是單體架構

簡單來說就是一個 war 包打天下,war 包中就包含了各種功能和資源,比如 JSP. JS. CSS,業務就是各個功能模塊,如下圖:

單體架構優缺點

微服務與微服務架構

什麼是微服務

微服務的核心就是將傳統的單體架構拆分成單個服務,將業務間進行解耦,每個服務可以單獨部署. 可以擁有自己的數據庫這樣拆分出來的服務就叫做微服務。

就比如說,單體架構中有訂單. 支付. 物流. 積分等業務,拆分成微服務,訂單服務,支付服務,物流服務,積分服務

這樣拆分出來有什麼意義呢?

單體架構中若非核心模塊出現重大 Bug,比如積分模塊內存溢出,就會導致整個項目宕機 但若是拆分成微服務,則只是說積分服務不能使用,但核心服務並不會受到影響

什麼是微服務架構

微服務架構是一種架構風格,包含如下幾個特點:

微服務與微服務架構的區別

微服務是服務的大小和對外提供的單一功能,微服務架構是指把一個個微服務管理起來,對外提供的一套完整服務

微服務架構的優缺點
單體架構和微服務架構的區別

併發增加,上集羣,硬件成本高

併發增加,靈活擴展,降低硬件成本,但運維成本. 開發成本上升

單體架構:僅有一個數據庫 微服務架構:每個微服務都可以有一個數據庫

微服務的適用場景

開發微服務的框架

相關框架

下圖便是 Spirng Cloud Alibaba 提供的一套工具集,注意雖然有些備註是開源,但只是部分開源,一些核心功能依舊需要付費才能使用,比如 Sentinel,開源的話本地限流配置是不能持久化的 (可以選擇付費,大佬可以改源代碼來解決該問題)

如何選擇框架的版本

Spring Boot

以 2.1.6.RELEASE 版本爲例

所以 2.1.6 合起來就是 springboot 的第二代版本的第一個小版本的 第 6 次 bug 修復版本

RELEASE: 存在哪些取值呢?

所以選擇版本時請認準 release

Spring Cloud

爲什麼我們的 SpringCloud 會以這種方式來發布版本,因爲假如我們傳統的 5.1.5release 這種發佈的而 SpringCloud 會包含很多子項目的版本就會給人造成混淆

比如 Greenwich 版本順序:Greenwich.release-----> 發現 bug----->Greenwich.SR1------> 發現 bug---->Greenwich.SR2

總結:

這三個框架的版本關係,及推薦使用的版本如下:

來源:segmentfault.com/a/1190000022619522

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/YhUZtADVcIcDgmdOkBW7bg