首頁  >  文章  >  後端開發  >  php微服務是什麼

php微服務是什麼

王林
王林原創
2019-09-18 17:57:046734瀏覽

php微服務是什麼

微服務是什麼?

微服務就是將一個完整的系統,依照業務功能,分割成一個獨立的子系統,在微服務結構中,每個子系統就被稱為為“服務”。這些子系統能夠獨立運作在web容器中,它們之間透過RPC方式進行通訊。

舉個例子,假設需要發展一個線上商城。依照微服務的思想,我們需要依照功能模組拆分成多個獨立的服務,如:使用者服務、產品服務、訂單服務、後台管理服務、資料分析服務等等。這一個個服務都是一個獨立的項目,可以獨立運作。如果服務之間有依賴關係,那麼透過RPC方式呼叫。

好處:

1、系統之間的耦合度大幅降低,可以獨立開發、獨立部署、獨立測試,系統與系統之間的邊界非常明確,排錯也變得相當容易,開發效率大大提升。

2、系統之間的耦合度降低,因此係統更容易擴展。我們可以針對性地擴展某些服務。假設這個商城要搞一次大促,下單量可能會大大提升,因此我們可以針對性地提升訂單系統、產品系統的節點數量,而對於後台管理系統、數據分析系統而言,節點數量維持原有水平即可。

3、服務的複用性更高。例如,當我們將使用者係統作為單獨的服務後,該公司所有的產品都可以使用該系統作為使用者係統,無需重複開發。

那麼問題來了,當採用微服務結構後,一個完整的系統可能有很多獨立的子系統組成,當業務量漸漸發展起來之後,而這些子系統之間的關係將錯綜複雜,而且為了能夠針對性地增加某些服務的處理能力,某些服務的背後可能是一個群集模式,由多個節點所構成,這無疑地大大增加了維運的難度。微服務的想法好是好,但開發、維運的複雜度實在太高。為了解決這些問題,阿里巴巴的Dubbo就橫空出世了。

Dubbo

Dubbo是一套微服務系統的協調者,在它這套體系中,一共有三種角色,分別是:服務提供者(以下簡稱提供者)、服務消費者(以下簡稱消費者)、註冊中心。

你在使用的時候需要將Dubbo的jar套件引入到你的專案中,也就是每個服務都要引入Dubbo的jar套件。然後當這些服務初始化的時候,Dubbo就會將目前系統需要發佈的服務、以及目前系統的IP和連接埠號碼傳送給註冊中心,註冊中心便會將其記錄下來。這就是服務發布的過程。同時,也是在系統初始化的時候,Dubbo也會掃描一下目前系統所需要引用的服務,然後向註冊中心請求這些服務所在的IP和連接埠號碼。接下來系統就可以正常運作了。當系統A需要呼叫系統B的服務的時候,A就會與B建立起一條RPC頻道,然後再呼叫B系統上對應的服務。

推薦教學:PHP影片教學

#

以上是php微服務是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn