1. 程式人生 > >dubbo之服務容器

dubbo之服務容器

jetty 命令 classpath spring cto 日誌級別 web nts 靜態

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

服務容器只是一個簡單的Main方法,並加載一個簡單的Spring容器,用於暴露服務。

服務容器的加載內容可以擴展,內置了spring, jetty, log4j等加載,可通過Container擴展點進行擴展,參見:Container。配置配在java命令-D參數或者dubbo.properties中

Spring Container
  • 自動加載 META-INF/spring 目錄下的所有 Spring 配置。
  • 配置spring配置加載位置:dubbo.spring.config=classpath*:META-INF/spring/*.xml
Jetty Container
  • 啟動一個內嵌Jetty,用於匯報狀態。
  • 配置:
    • dubbo.jetty.port=8080 ----配置jetty啟動端口
    • dubbo.jetty.directory=/foo/bar ----配置可通過jetty直接訪問的目錄,用於存放靜態文件
    • 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 com.alibaba.dubbo.container.Main

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

java com.alibaba.dubbo.container.Main spring jetty log4j

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

java com.alibaba.dubbo.container.Main -Ddubbo.container=spring,jetty,log4j

或:(通過classpath下的dubbo.properties配置傳入要加載的容器)

dubbo.properties

dubbo.container=spring,jetty,log4j

dubbo之服務容器