Dubbo 的應用和介面
Dubbogo 服務層級
Dubbogo 有兩個服務層級:應用程式層級和介面層級,它們與**框架配置**結構密切相關。
如下圖所示,可以看到應用程式層級的元件以淺紅色標記,介面層級的元件以淺藍色標記
1. 應用程式層級元件
應用程式層級元件的特點:由目前應用程式的所有介面層級元件共用。
主要的應用程式層級元件如下:
應用程式資訊模組
包含與應用程式維度相關的資訊,包括應用程式名稱、版本號、資料回報方式等。
消費者模組
消費者模組負責與客戶端相關的資訊,包括一個或多個 Reference 結構,以及逾時、消費者過濾器等相關資訊。
提供者模組
提供者模組負責與伺服器端相關的資訊,包括一個或多個服務 (Service) 結構、伺服器端過濾器 (提供者過濾器) 等相關資訊。
註冊中心模組
註冊中心模組負責定義一系列要使用的註冊中心,例如框架支援的 ZK、Nacos、etcd 等中介軟體。應用程式層級的註冊模組僅負責宣告,由介面層級的元件引用,引用時使用使用者定義的註冊中心 ID (registryID) 作為索引。
協定模組
協定模組僅存在於伺服器端。
協定模組關心服務暴露的資訊,例如協定名稱、服務監聽 IP、埠號等資訊。協定模組屬於應用程式層級,僅負責宣告,並由介面層級的組件以使用者自定義的協定 ID (protocolID) 作為索引來引用。
中繼資料中心模組
中繼資料中心類似於註冊中心模組,負責宣告框架需要使用的中繼資料中心,以便成功回報中繼資料。
配置中心模組
路由模組
日誌模組
監控模組
2. 介面層級組件
服務模組
服務模組用於任何暴露的服務,宣告介面暴露所需的資訊,包括介面名稱、協定、序列化方法等,並負責單個服務介面的暴露。
引用模組
引用模組由需要呼叫遠端服務的客戶端使用。它宣告請求介面所需的資訊,包括介面名稱、協定、序列化方法等,負責特定協定的抽象化,並參與客戶端的產生。
3. 說明
暴露的服務位於介面層級。使用者自定義的 Provider Struct/使用者自定義的 Consumer Struct 對應於一個 Service/Reference 模組。一個應用程式可以同時擁有 Consumer 模組和 Provider 模組,因此可以同時存在多個 Service/Reference 模組。