平臺的后臺服務表現形式就是各種各樣的微服務。微服務可以部署在不同的機器上。單一服務的伸縮很簡單:
部署在不同機器上,直接啟動關閉即可。
部署在同一機器上,可以復制為多個不同目錄,其中jar包,啟動文件是完全一樣的。例如搞4個服務:
其中不同的僅僅是bootstrap.yml文件,其中最關鍵的不同是:
事實上,不用這么多目錄,只用一個目錄是可以,只是要做多個批處理文件:
就是同一目錄下搞多個配置文件 多個啟動文件。這樣的好處是升級時,只復制一次jar包即可。缺點是日志文件會集中到一個目錄一個文件了。(當然日志里會有標識,區分那個服務產生的內容)
上面這個方式不推薦,推薦前面說的多目錄方式。
服務之間的彈性收縮如何處理?涉及到服務的合并和分割。核心關鍵在打包和配置。
平臺的服務程序的項目工程其實就是個架子,其中的pom.xml定義了本服務打包那些control,從而實現服務包的合并和分割。
服務包劃定好后,最終分割體現在網關路由定義上:
例如對小型項目,平臺會把QLM-Resource-Service、QLM-Usermanage-Service、QLM-HR-Service、zCMS-Service組合成QLM-System-Service,對應路由就是:
就是把各自的訪問集中到QLM-System-Service。相反分散的情況是:
核心原理就是通過路由路徑分配到具體的服務。