微服務中規範每每比代碼更加劇要,一些良好的規範,能讓咱們少走彎路。mica-launcher
啓動器就是對服務名和服務環境進行了定製的處理,使得企業開發更加方便快捷。java
服務名在微服務中起着相當重要的位置,一個好的服務名應該見名知意。下面是筆者在工做中總結的規範。spring
例如:user-api
api
第一級 服務名tomcat
第二級 服務類型app
將組名放到第一位,方便快速定位到技術組。ide
例如:mica-user-api
微服務
第一級 組名單元測試
第二級 服務名學習
第三級 服務類型測試
啓動器的使命就是讓咱們的 jar 在各類環境中均可以方便啓動,不用添加過多的配置,減小學習成本,能快速上手。
dev(開發)、test(測試)、ontest(線上測試)、prod(正式),默認dev
mica-launcher 最先的雛形初如今筆者的一些 JFinal 項目中,期初主要是爲了適應開發階段的 jetty 和正式環境的 tomcat 日誌目錄。
在 Spring boot 中我便設計了 mica-launcher 來處理服務環境,使其更加方便好用。
使用起來比原生的 spring boot
啓動器裏多了一個服務名參數,微服務中服務名對一個服務特別重要,故在啓動器啓動時寫死。
net.dreamlu mica-launcher
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 的代碼。
{ ( , , , , ); }
文件路徑和文件名 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