springCloud入門學習(一):認識微服務架構

1、單體應用
網絡

一、概念架構

一個歸檔包包含了全部的功能的應用程序,這樣的應用系統被稱爲「單體應用」。分佈式

二、優缺點ide

單體應用在開發出去具備易部署、易測試的優勢,但隨着需求的不斷增多,代碼量的不斷上升,單體應用的缺點也隨着暴露出來:微服務

(1)複雜性高:整個項目包含的模塊很是多,各個模塊之間的邊界模糊,依賴關係不清楚。新增功能或修改功能時頗有可能帶來隱患;測試

(2)部署頻率低:修改一個模塊須要部署真個項目;spa

(3)可靠性差:其中一個模塊的bug例如死循環等致使整個項目的崩潰。設計

2、微服務進程

一、概念事務

微服務是一種架構風格,是一種將一個單一應用系統開發爲一小組小型服務的方法,每個服務都運行在本身的進程中,服務間採用輕量級通訊機制(例如HTTP)。每一個服務可使用不一樣的開發語言,能夠根據功能特色配置不一樣的硬件。

二、特色

(1)每一個服務單獨運行在本身的進程中;

(2)一系列獨立的服務共同構建整個系統;

(3)每一個服務業務獨立;

(4)服務之間經過輕量級通訊機制進行通訊;

(5)可使用不一樣的開發語言和數據存儲結構。


以電影票業務爲例,在單體應用中,一個大的系統中包含不少模塊,其中包括用戶模塊和電影模塊。在微服務架構中,將用戶模塊和電影模塊分別獨立成兩個服務:用戶服務和電影服務,當兩個服務之間須要通訊時,能夠經過HTTP協議進行數據交流。


三、缺點

微服務雖然講業務進行了拆分,使業務邏輯更加明確,但依然存在不少使人頭疼的缺點:

(1)分佈式固有的複雜性:網絡延遲、系統容錯、分佈式事務等問題;

(2)重複勞動:可能存在這種狀況,多個功能都須要使用同一個功能,但該功能尚未達到要分解成一個微服務的程度。


四、微服務設計原則

(1)單一職責:每一個服務只負責單獨的功能;

(2)服務自治:與其餘服務高度解耦;

(3)輕量級通訊機制;

(4)微服務粒

相關文章
相關標籤/搜索