2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

如何構建微服務架構?【Java技術文章】

更新時間:2022-03-22 來源:黑馬程序員 瀏覽量:

通過前面的java學習后,相信很多人對微服務架構都會產生這樣一些疑問,例如我要何時使用微服務架構?又如何將應用程序分解為微服務?分解后,要如何去搭建微服務架構?同時,在微服務架構中,因為會涉及到多個組件,那么這些組件又可以使用什么技術來實現呢?接下來的幾個小節中,我們將對這些問題進行詳細的講解。

微服務的拆分

對于一般的公司而言,實踐微服務有非常大的技術挑戰,所以并不是所有的公司都適合將單體架構拆分成微服務架構。一般來說,微服務架構比較適合未來有一定的擴展復雜度,且有很大用戶增量預期的應用,例如一些新興的互聯網公司應用。這些公司在創業初期,不可能買大量的機器或者很貴的機器,但是又必須考慮應對成功后巨量的用戶問題,這時微服務架構就成了最好的選擇。除此之外,對于那些項目規模較大、業務復雜度較高,且需要長期跟進的項目,也適合考慮使用微服務架構。

在決定使用微服務架構后,所面臨的另一個問題就是如何將系統拆分為微服務。對于微服務的拆分,可以參考如下幾點建議:

①通過業務功能分解并定義與業務功能相對應的服務。

②將域驅動設計分解為多個子域。

③按照動詞或用例分解,并定義負責特定操作的服務。例如一個負責完成訂單的航運服務。

④通過定義一個對給定類型的實體或資源的所有操作負責的服務來分解名詞或資源。例如一個負責管理用戶帳戶的帳戶服務。

由于每個公司項目的實際情況不同,所以微服務的拆分在實際操作時,會涉及到很多不同的細節問題,這里就不一一描述了,但總體來說,項目在拆分時按照上述幾點建議即可。

微服務架構的組件

我們先來了解下微服務架構中所涉及到的一些常見組件。這些組件的名稱及其作用如下:

①服務注冊中心:注冊系統中所有服務的地方;

②服務注冊:服務提供方將自己調用地址注冊到服務注冊中心,讓服務調用方能夠方便地找到自己;

③服務發現:服務調用方從服務注冊中心找到自己需要調用服務的地址;

④負載均衡:服務提供方一般以多實例的形式提供服務,使用負載均衡能夠讓服務調用方連接到合適的服務節點;

⑤服務容錯:通過斷路器(也成熔斷器)等一系列的服務保護機制,保證服務調用者在調用異常服務時快速的返回結果,避免大量的同步等待。

⑥服務網關:也稱為API網關,是服務調用的唯一入口,可以在這個組件中實現用戶鑒權、動態路由、灰度發布、負載限流等功能;

⑦分布式配置中心:將本地化的配置信息(properties、yml、yaml等)注冊到配置中心,實現程序包在開發、測試、生產環境的無差別性,方便程序包的遷移。

微服務架構的搭建

通過前兩個小節的學習,我們已經了解了如何將傳統業務拆分為微服務,并熟悉了微服務架構中所涉及到的組件。為了使讀者在整體上對微服務架構有一個認識,下面我們通過一張圖來講解如何搭建一個微服務架構,如圖1-5所示。

如何構建微服務架構

圖1-5簡單微服務架構在圖1-5中,部署了一系列的微服務,每個微服務都會訪問自己的數據庫(Database)。當這些微服務啟動時,會將其信息注冊到服務注冊中心(Service Registry), 在客戶端發送請求時,請求首先會被API網關(APIGateWay)攔截,API網關會讀取請求數據,并從注冊中心獲取對應的服務信息,然后API網關會根據服務信息調用所需的微服務。

小提示:

圖1-5中展示的只是一個簡單的微服務架構,然而要判斷一個架構是否是微服務架構,還需要滿足以下幾點要求:

①根據業務模塊劃分服務種類;

②每個服務可獨立部署且相互隔離;

③通過輕量級API調用服務;

④服務需保證良好的高可用性。

只有滿足以上幾點要求的架構,才能稱之為微服務架構,所以在搭建微服務架構時,一定要注意這些問題。

分享到:
在線咨詢 我要報名
和我們在線交談!