架構模式: 微服務的基底


架構模式: 微服務的基底

上下文

當您開始開發應用程序時,您經常花費大量時間來建立處理跨領域問題的機制。跨領域關注的例子包括:

  • 外部化配置 - 包括外部服務(如數據庫和消息代理)的憑據和網絡位置
  • 日志記錄 - 配置日志框架,例如log4j或logback
  • 運行狀況檢查 - 監視服務可以“ping”以確定應用程序運行狀況的URL
  • 度量標准 - 可以深入了解應用程序正在執行的操作及其執行方式的度量標准
  • 分布式跟蹤 - 具有代碼的儀器服務,該代碼為每個外部請求分配在服務之間傳遞的唯一標識符。

除了這些通用的跨領域問題之外,還存在特定於應用程序使用的技術的跨領域問題。使用基礎結構服務(如數據庫或消息代理)的應用程序需要樣板配置才能執行此操作。例如,使用關系數據庫的應用程序必須配置連接池。處理HTTP請求的Web應用程序也需要樣板配置。

建立這些機制通常花費一兩天,有時甚至更長。如果您要花費數月或數年時間開發單一應用程序,那么處理跨領域問題的前期投資是微不足道的。但是,如果您正在開發具有微服務架構的應用程序,情況就大不相同了。有數十或數百種服務。您將經常創建新服務,每個服務只需數天或數周即可開發。您無法花費幾天時間來配置機制來處理跨領域問題。更糟糕的是,在微服務架構中,您必須處理其他交叉問題,包括服務注冊和發現,以及可靠處理部分故障的斷路器。

要點

  • 創建一個新的微服務應該快速而簡單
  • 在創建微服務時,您必須處理橫切關注點,例如外部配置,日志記錄,運行狀況檢查,指標,服務注冊和發現,斷路器等。還存在針對微服務所使用的技術的跨領域問題。

解決方案

使用微服務機箱框架構建您的微服務,該框架處理跨領域問題

例子

微服務基礎框架的示例:

結果上下文

微服務機箱的主要優點是,您可以快速輕松地開始開發微服務。
您需要為要使用的每種編程語言/框架提供微服務機箱。這可能成為采用新編程語言或框架的障礙。
 

相關的模式

有以下相關模式:

  • 微服務 - 這種模式激發了對微服務基礎框
  • 自注冊的需求 - 微服務基礎框架通常負責通過服務注冊表注冊
  • 服務客戶端發現 - 微服務基礎框架通常負責客戶端服務發現
  • Circuit Breaker  -微服務基礎框架可能實現這種模式
  • 分布式跟蹤 - 微服務基礎框架實現跟蹤

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM