mica-launcher 啓動器

前言

微服務中規範每每比代碼更加劇要,一些良好的規範,能讓咱們少走彎路。mica-launcher 啓動器就是對服務名和服務環境進行了定製的處理,使得企業開發更加方便快捷。java


服務名規範

服務名在微服務中起着相當重要的位置,一個好的服務名應該見名知意。下面是筆者在工做中總結的規範。spring


小開發團隊-兩級

例如:user-apiapi

  1. 第一級 服務名tomcat

  2. 第二級 服務類型app


多個開發團隊-三級

將組名放到第一位,方便快速定位到技術組。ide

例如:mica-user-api微服務

  1. 第一級 組名單元測試

  2. 第二級 服務名學習

  3. 第三級 服務類型測試


環境劃分

願景

啓動器的使命就是讓咱們的 jar 在各類環境中均可以方便啓動,不用添加過多的配置,減小學習成本,能快速上手。

環境劃分

dev(開發)、test(測試)、ontest(線上測試)、prod(正式),默認dev

環境變量配置


背景故事

mica-launcher 最先的雛形初如今筆者的一些 JFinal 項目中,期初主要是爲了適應開發階段的 jetty 和正式環境的 tomcat 日誌目錄

在 Spring boot 中我便設計了 mica-launcher 來處理服務環境,使其更加方便好用。


mica-launcher 使用

使用起來比原生的 spring boot 啓動器裏多了一個服務名參數,微服務中服務名對一個服務特別重要,故在啓動器啓動時寫死。

Maven

    net.dreamlu
    mica-launcher

Gradle

implementation "net.dreamlu:mica-launcher"


   {

     ([] ) {
    .(, ., );
  }
}


注意:使用了 mica-launcher 啓動器,須要結合 mica-test 進行單元測試,具體文章請查看 mica test 單元測試

啓動器自動化配置

代碼中能夠採用注入 MicaProperties 來讀取啓動器中的一些變量,好比 env 等。mica.prop 能夠在配置文件中自定義配置。而後再在代碼中使用 MicaProperties 讀取。


配置項 默認值 說明
mica.env dev 【只讀】mica 環境變量,方便在代碼中獲取,設置無效.
mica.is-local false 【只讀】判斷是否爲 本地開發環境
mica.prop 裝載自定義配置 mica.prop.xxx

自定義配置

如夢技術
https//www.dreamlu.net

配置讀取

  ;
  () {
       .();
       .();
    
}


啓動器插件擴展

啓動器的主要目的是能更加方便的去注入一些通用配置,下降使用難度。mica-log4j2 就是一個啓動器的擴展。

插件擴展基於 java SPI 技術,關於 java SPI 具體使用能夠百度。


實現 LauncherService,重寫 launcher 方法

下面是 LauncherService 的代碼。


 
 
 
 
   {
   
    
    
    
    
    
    
    
    ( ,  ,  ,  ,  );
}

編寫 SPI 文件放置到 resources 目錄下

文件路徑和文件名 META-INF/services/net.dreamlu.mica.launcher.LauncherService 

內容爲你編寫的插件完整類名,例如:net.dreamlu.mica.log.LogLauncherServiceImpl


最佳實踐

mica-launcher 中咱們預製了環境變量,您能夠再服務裏將配置中心按環境來劃分域名。在配置中能夠使用 ${mica.env} 佔位符完成配置。


例如:(配置服務域名)

config-dev.dreamlu.vip
config-test.dreamlu.vip
......


使用示例:

https//config-$mica.env.dreamlu.vip
相關文章
相關標籤/搜索