Spring Cloud微服務架構進階》——1.2 微服務架構的流派

      網友投稿 764 2025-03-31

      1.2 微服務架構的流派

      常見的微服務架構方案有四種,分別是ZeroC IceGrid、基于消息隊列、Docker Swarm和Spring Cloud。下面分別介紹這四種方案。

      1. ZeroC IceGrid

      ZeroC IceGrid是基于RPC框架Ice發展而來的一種微服務架構,Ice不僅僅是一個RPC框架,它還為網絡應用程序提供了一些補充服務。Ice是一個全面的RPC框架,支持C++、C#、Java、JavaScript、Python等語言。IceGrid具有定位、部署和管理Ice服務器的功能,具有良好的性能與分布式能力,下面具體介紹IceGrid的功能。

      Ice的DNS。DNS用于將域名信息映射到具體的IP地址,通過域名得到該域名對應的IP地址的過程叫做域名解析。IceGrid為Ice提供了類似的服務:它允許Ice客戶端通過簡單的名稱來查找Ice對象。Ice客戶端可以通過提供此對象的完整尋址信息來訪問服務器中的Ice對象,例如chatRoom1:ssl -h demo.zeroc.com -p 10000。這樣的硬編碼雖然很簡單,但缺乏靈活性。因為需要為Ice服務器(本例中端口為10000)選擇一個固定的端口號,因此將Ice服務器移到不同的主機上需要更新其客戶端。

      IceGrid提供了對這種尋址信息使用符號名稱的選項,例如chatRoom1@chatRoomHost。當Ice客戶端嘗試訪問chatRoomHost中的對象時,它會要求IceGrid提供與此符號名稱關聯的實際地址。例如,IceGrid返回-h demo.zeroc.com -p 65431,客戶端就可以直接并透明地連接到服務器。IceGrid架構如圖1-2所示。

      圖1-2 IceGrid架構圖

      服務器部署。若直接通過IP地址+端口號的方式,當Ice客戶端嘗試連接到未運行的服務器時,連接將會失敗。通過符號或間接尋址,IceGrid有機會檢查目標服務器是否正在運行,并在服務器未運行時啟動或重新啟動服務器。可以配置IceGrid以各種方式啟動服務器:手動(通過管理命令)、按需(無論何時請求服務器)和IceGrid始終保持服務器運行。

      服務器的復制。IceGrid允許部署同一服務器的多個副本,并可以配置IceGrid將符號名稱解析到此服務器副本的策略。可以在所有副本中對客戶端進行負載平衡,或者使用主備配置,客戶端只要保持可用狀態,就使用主備配置。

      《Spring Cloud微服務架構進階》——1.2 微服務架構的流派

      管理和監控。IceGrid的管理工具可以完全控制已部署的應用程序。諸如啟動服務器或修改配置設置等活動只需單擊鼠標即可。圖1-3為IceGrid管理工具的界面。

      IceGrid當前最新的版本為3.7.1,在3.6版本之后增加了容器化的運行方式。總的來說,IceGrid作為微服務架構早期的實踐方案,其流行時間并不是很久,當前國內選用這種微服務架構方案的公司非常少。

      2.基于消息隊列

      在微服務架構的定義中講到,各個微服務之間使用“輕量級”的通信機制。所謂輕量級,是指通信協議與語言無關、與平臺無關。微服務之間的通信方式有兩種:同步和異步。同步方式有RPC,REST等;除了標準的基于同步通信方式的微服務架構外,還有基于消息隊列異步方式通信的微服務架構。

      圖1-3 IceGrid Admin

      在基于消息隊列的微服務架構方式中,微服務之間采用發布消息與監聽消息的方式來實現服務之間的交互。圖1-4是一個簡單的電商系統中商品服務、用戶服務、訂單服務和庫存服務之間的交互示意圖,可以看到消息中間件(MQ)是關鍵,它負責連通各個微服務,承擔了整個系統互聯互通的重任。

      基于消息隊列的微服務架構是全異步通信模式的一種設計,各個組件之間沒有直接的耦合關系,也不存在服務接口與服務調用的說法,服務之間通過消息來實現彼此的通信與業務流程的驅動。基于消息隊列的微服務架構應用的案例并不多,更多地體現為一種與業務相關的設計經驗,每個公司都有不同的實現方式,缺乏公認的設計思路與參考架構,也沒有形成一個知名的開源平臺。因此,如要實施這種微服務架構,需要項目組自己從零開始去設計實現一個微服務架構基礎平臺,這可能會造成項目的成本較高且風險較大,決策之前需要進行全盤思考與客觀評價。

      3. Docker Swarm

      Swarm項目是Docker公司發布的三劍客中的一員,用來提供容器集群服務,目的是更好地幫助用戶管理多個Docker Engine,方便用戶使用。通過把多個Docker Engine聚集在一起,形成一個大的Docker Engine,對外提供容器的集群服務。同時這個集群對外提供Swarm API,用戶可以像使用Docker Engine一樣使用Docker集群。

      如圖1-5所示Docker三劍客包括:Machine、Compose和Swarm。通過Machine可以在不同云平臺上創建包含docker-engine的主機。Machine通過driver機制,支持多個平臺的docker-engine環境的部署。Swarm將每一個主機上的docker-engine管理起來,對外提供容器集群服務。Compose項目主要用來提供基于容器的應用的編排。用戶通過yaml文件描述由多個容器組成的應用,然后由Compose解析yaml文件,調用Docker API,在Swarm集群上創建對應的容器。Swarm集群結構如圖1-6所示。

      圖1-5 Docker三劍客

      圖1-6 Docker Swarm結構

      從圖1-6中我們看到一個Swarm集群中有兩種角色的節點:

      Manager:負責集群的管理、集群狀態的維持及將任務(Task)調度到工作節點上等。

      Worker:承載運行在Swarm集群中的容器實例,每個節點主動匯報其上運行的任務并維持同步狀態。

      Docker Swarm對外提供Docker API,自身輕量,學習成本、二次開發成本都比較低,是一個插件式框架。從功能上講,Swarm是類似于Google開源的Kubernetes微服務架構平臺的一個產品。

      4. Spring Cloud

      Spring Cloud是一個基于Spring Boot實現的云應用開發工具,是一系列框架的集合,當添加這些工具庫到應用后會增強應用的行為。Spring Boot秉持約定優于配置的思想,因此可以利用這些組件基本的默認行為來快速入門,并在需要的時候可以配置或擴展,以創建自定義解決方案。

      Spring Cloud利用Spring Boot的開發便利性,巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以基于Spring Boot組件進行開發,做到一鍵啟動和部署。Spring Cloud并沒有重復制造輪子,它只是將目前比較成熟、經得起實際考驗、優秀的開源服務框架組合起來,通過Spring Boot進行封裝,屏蔽掉復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。

      以下為Spring Cloud的核心功能:

      分布式/版本化配置

      服務注冊和發現

      服務路由

      服務和服務之間的調用

      負載均衡

      斷路器

      分布式消息傳遞

      還有很多基礎的功能沒有列出,每個功能對應Spring Cloud中的一個組件,包括 Spring Cloud Config、Spring Cloud Netflix(Eureka、Hystrix、Zuul、Archaius …)、Spring Cloud Bus等組件。

      微服務 Kubernetes Spring Cloud Spring

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何在一張紙中作出一年的日歷(用白紙做日歷)
      下一篇:如何查詢excel歷史修改記錄(excel更改記錄如何查詢)
      相關文章
      亚洲级αV无码毛片久久精品| 亚洲国产成人私人影院| 亚洲日韩国产欧美一区二区三区 | 亚洲啪啪AV无码片| 亚洲精品成人a在线观看| 亚洲黄色在线观看| 亚洲精品第一国产综合亚AV| 亚洲国产老鸭窝一区二区三区 | 中文字幕乱码亚洲无线三区| 精品国产亚洲一区二区三区| 亚洲欧洲AV无码专区| 亚洲乱码国产乱码精华| 亚洲欧美一区二区三区日产| 亚洲a∨无码精品色午夜| 亚洲免费闲人蜜桃| 亚洲国产精品无码久久久蜜芽 | 亚洲av永久无码精品网站| 午夜亚洲国产成人不卡在线| 亚洲白嫩在线观看| 亚洲色四在线视频观看| 4444亚洲国产成人精品| 亚洲国产成人无码av在线播放 | 亚洲美女又黄又爽在线观看| 亚洲VA中文字幕无码毛片| 亚洲av激情无码专区在线播放| 亚洲人AV永久一区二区三区久久| 亚洲国产日韩综合久久精品| 久久久久久亚洲精品成人| 国产亚洲av片在线观看播放| 久久青草亚洲AV无码麻豆| 久久久久亚洲AV成人片| 亚洲国产精品综合久久20| 亚洲综合久久成人69| 亚洲黄页网在线观看| 国产亚洲人成在线播放| 亚洲日本天堂在线| 国产亚洲情侣久久精品| 久久精品国产亚洲av瑜伽| 亚洲伊人久久成综合人影院| 亚洲不卡av不卡一区二区| 亚洲美女视频免费|