天天看點

微服務開發及部署_Java大型網際網路建構微服務架構技術設計-Dubbo之微服務架構部署...總結

引言

微服務涵蓋了微信管家、微信應用解決方案、微信客服用戶端、人工微信客服幾部分。

微服務是對于微信公衆平台帳号提供的輔助管理平台,強化了微信公衆号的互動營銷推廣與客戶關系維護功能。微服務平台開發了為商家定制的“個性化管理、營銷推廣、客戶關系管理、會員卡管理”等幾個重要的營運管理子產品。

架構技術選型與設計-DUBBO

Dubbo,是阿裡巴巴服務化治理的核心架構,并被廣泛應用于阿裡巴巴集團的各成員站點(阿裡巴巴現在使用架構為HSF)。 于2012-10-24最後版本2.5.3成為最後一版本,由當當接手維護,命名為dubbox;2017年突然繼續dubbo進行維護,最後更新版本時間為 2017-10-11 22:21

微服務開發及部署_Java大型網際網路建構微服務架構技術設計-Dubbo之微服務架構部署...總結
微服務開發及部署_Java大型網際網路建構微服務架構技術設計-Dubbo之微服務架構部署...總結
微服務開發及部署_Java大型網際網路建構微服務架構技術設計-Dubbo之微服務架構部署...總結

Provider: 暴露服務的提供方。

Consumer:調用遠端服務的服務消費方。

Registry: 服務注冊中心和發現中心。

Monitor: 統計服務和調用次數,調用時間監控中心。(dubbo的控制台頁面中可以顯示)

Container:服務運作的容器。

Dubbo服務叢集-叢集容錯模式

架構技術選型與設計-微服務選型

架構技術選型與設計-DUBBO

架構技術選型與設計-DUBBO

單主機部署多服務執行個體

該模式下,需要多台實體機或虛拟機,在每個主機上部署多個服務執行個體。這是比較傳統的部署方法。每個服務執行個體運作在一至多台主機的端口上,主機通常像照看寵物一樣來管理這些服務。如下圖所示:

微服務開發及部署_Java大型網際網路建構微服務架構技術設計-Dubbo之微服務架構部署...總結

這一模式有幾個變型。其中之一就是每個服務對應一個或一組程序。例如:在 Apache Tomcat 伺服器上部署 Java 服務執行個體作為 web 應用,一個 Node.js 服務執行個體可能包含一個父程序或一至多個子程序。

另一個變型是在一個程序或程序組中運作多個服務執行個體。例如:在同一台 Apache Tomcat 伺服器中部署多個 Java web 應用,或者在一個 OSGI 容器中運作多個 OSGI 元件。

單主機多服務部署的優點:

1)資源使用率高,多個服務執行個體共享伺服器及作業系統。如果一個程序或程序組運作多個服務執行個體的話,效率就更高了,比如多個web應用共享同一台 Apache Tomcat 伺服器和 JVM。

2)部署服務執行個體快,隻需将服務拷貝到主機并啟動。如果服務是 Java 編寫的,複制 JAR包 或者 WAR 包;如果是 Node.js 或者 Ruby 等其它語言,拷貝源代碼即可。通過網絡複制這些位元組數還是比較小的。

3)由于沒有太多開銷,啟動服務通常很快。如果服務執行個體運作在同一容器的程序或程序組,可以動态部署到容器或使用重新開機容器的方式啟動服務。

不足在于:

1)服務執行個體之間沒有隔離。雖然可以準确監控每個服務執行個體的資源使用情況,但是并不能限制每個執行個體使用的資源,很有可能一個異常的服務執行個體會消耗掉主機的所有記憶體和 CPU資源。

2)同一程序運作多個服務執行個體根本沒有隔離性,所有服務執行個體共享一個 JVM 堆。一個異常的服務執行個體能夠輕易的破壞運作在同一程序中的其它服務執行個體。此外,也無法監控每個服務資源使用的情況。

3)對運維團隊來講,需要了解部署服務的具體細節。服務可能用不同的語言和架構寫成,因而開發團隊必須分享給運維團隊大量的細節。這種複雜性增加了部署中出錯的風險。

總結

以 上就是我對Java大型網際網路建構微服務架構技術設計-Dubbo之微服務架構部署問題及其優化總結,分享給大家,覺得收獲的話可以點個關注收藏轉發一波喔,謝謝大佬們支援!

最後,每一位讀到這裡的網友,感謝你們能耐心地看完。希望在成為一名更優秀的Java程式員的道路上,我們可以一起學習、一起進步!都能赢取白富美,走向架構師的人生巅峰!

想了解學習Java方面的技術内容以及Java技術視訊的内容可加群:722040762 驗證碼:頭條(06 必過)歡迎大家的加入喲!

微服務開發及部署_Java大型網際網路建構微服務架構技術設計-Dubbo之微服務架構部署...總結