自訂服務容器
理解 Dubbo 3 中服務自訂容器類型及用法
功能描述
Dubbo 3 的服務容器是一個獨立的啟動程式,因為後端服務不需要 Tomcat 或 JBoss 等 Web 容器的功能。如果您堅持使用 Web 容器載入服務提供者,將會增加複雜性並浪費資源。因此,服務通常不需要 Tomcat/JBoss 等 Web 容器的功能,也無需使用 Web 容器來載入服務。
Dubbo 3 服務容器只是一個簡單的 Main 方法,並載入一個簡單的 Spring 容器來暴露服務。
服務容器的載入內容可以擴展,內建 spring、jetty、log4j 等,可透過 容器擴展點 進行擴展。配置在 java 命令的 -D 參數或 dubbo.properties
中設定。
使用場景
Web 容器主要用於回應 http 請求和靜態頁面。Dubbo 服務提供者僅對外提供 dubbo 服務,不適合使用 Web 容器。作為單獨的 dubbo 服務提供者,只需要透過一個 main 方法載入一個簡單的 spring 容器來暴露服務即可。
使用方法
Spring 容器
自動載入
META-INF/spring
目錄下的所有 Spring 配置。配置 spring 配置載入位置
dubbo.spring.config=classpath*:META-INF/spring/*.xml
Jetty 容器
- 啟動一個嵌入式 Jetty 來回報狀態。
- 配置
dubbo.jetty.port=8080
:配置 jetty 啟動埠dubbo.jetty.directory=/foo/bar
:配置一個可透過 jetty 直接存取的目錄,用於存放靜態檔案dubbo.jetty.page=log,status,system
:配置顯示的頁面,預設載入所有頁面
Log4j 容器
- 自動配置 log4j。當啟動多個程序時,日誌文件會自動按程序劃分到不同的目錄。
- 配置
dubbo.log4j.file=/foo/bar.log
:設定日誌文件路徑dubbo.log4j.level=WARN
:設定日誌級別dubbo.log4j.subdirectory=20880
:設定多程序啟動時的日誌子目錄,避免衝突
容器載入說明
預設只載入 Spring 容器。
java org.apache.dubbo.container.Main
透過主函式參數傳入要載入的容器。
java org.apache.dubbo.container.Main spring jetty log4j
透過 JVM 啟動參數傳入要載入的容器。
java org.apache.dubbo.container.Main -Ddubbo.container=spring,jetty,log4j
透過類別路徑下的 dubbo.properties
設定檔傳入要載入的容器。
dubbo.container=spring,jetty,log4j
上次修改日期:2023 年 1 月 2 日:增強英文文件 (#1798) (95a9f4f6c1c)