Dubbo3 服務(wù)容器

2022-04-01 17:56 更新

使用 Dubbo 中的服務(wù)容器

服務(wù)容器是一個 standalone 的啟動程序,因為后臺服務(wù)不需要 Tomcat 或 JBoss 等 Web 容器的功能,如果硬要用 Web 容器去加載服務(wù)提供方,增加復(fù)雜性,也浪費資源。

服務(wù)容器只是一個簡單的 Main 方法,并加載一個簡單的 Spring 容器,用于暴露服務(wù)。

服務(wù)容器的加載內(nèi)容可以擴展,內(nèi)置了 spring, jetty, log4j 等加載,可通過容器擴展點進行擴展。配置配在 java 命令的 -D 參數(shù)或者 ?dubbo.properties? 中。

容器類型

Spring Container

  • 自動加載 ?META-INF/spring? 目錄下的所有 Spring 配置。
  • 配置 spring 配置加載位置:
    dubbo.spring.config=classpath*:META-INF/spring/*.xml

Jetty Container

  • 啟動一個內(nèi)嵌 Jetty,用于匯報狀態(tài)。
  • 配置:
    • ?dubbo.jetty.port=8080?:配置 jetty 啟動端口
    • ?dubbo.jetty.directory=/foo/bar?:配置可通過 jetty 直接訪問的目錄,用于存放靜態(tài)文件
    • ?dubbo.jetty.page=log,status,system?:配置顯示的頁面,缺省加載所有頁面

Log4j Container

  • 自動配置 log4j 的配置,在多進程啟動時,自動給日志文件按進程分目錄。
  • 配置:
    • ?dubbo.log4j.file=/foo/bar.log?:配置日志文件路徑
    • ?dubbo.log4j.level=WARN?:配置日志級別
    • ?dubbo.log4j.subdirectory=20880?:配置日志子目錄,用于多進程啟動,避免沖突

容器啟動

缺省只加載 spring

java org.apache.dubbo.container.Main

通過 main 函數(shù)參數(shù)傳入要加載的容器

java org.apache.dubbo.container.Main spring jetty log4j

通過 JVM 啟動參數(shù)傳入要加載的容器

java org.apache.dubbo.container.Main -Ddubbo.container=spring,jetty,log4j

通過 classpath 下的 ?dubbo.properties? 配置傳入要加載的容器

dubbo.container=spring,jetty,log4j


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號