微服務框架(三十一)Docker項目發佈流程

此係列文章將會描述Java框架Spring Boot、服務治理框架Dubbo、應用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等開源框架,其中穿插着Spring Boot中日誌切面等技術的實現,然後通過gitlab-CI以持續集成爲Docker鏡像。

本文爲Docker項目發佈流程

本系列文章中所使用的框架版本爲Spring Boot 2.0.3-RELEASE,Spring 5.0.7-RELEASE,Dubbo 2.6.2。

Piplin部署

piplin的詳細部署流程見微服務框架(二十一)Piplin 持續部署 Docker 容器

目前所有的算法微服務暴露兩個端口,9700段爲服務調用端口,22800段爲服務QOS端口,
所有的服務均會通過zookeeper註冊中心獲取服務地址

發佈流程

docker鏡像標籤、git標籤、構建產物版本 應嚴格保持一致
部署環境的環境名稱需與spring.profiles.active的項目配置名稱保持一致

  1. 項目設置docker鏡像標籤image.tag(如1.0.1)
  2. git tag的標籤與docker鏡像標籤保持一致(如1.0.1)
  3. gitlab-CI標籤自動觸發,打包對應版本的docker鏡像並上傳至docker私有倉庫
  4. 由標籤事件觸發piplin Webhook,自動構建對應版本產物
  5. 創建構建產物版本與docker鏡像標籤保持一致(如1.0.1)
  6. 機櫃直接發佈 或 選擇灰度服務器灰度發佈

容器啓動時可 動態選擇配置文件配置線程策略、線程數等參數
(e.g. --spring.profiles.active=dev --dubbo.provider.timeout=1500)

灰度部署流程

可在piplin設置灰度服務器,並手動發佈

若爲REST接口,可依照每個服務至少需要兩臺服務器,按照目前的調用情況,維持一臺權重爲 100,另一臺權重爲 50,並實時根據調用情況做調整

管理中心

若希望人工管理服務提供者的上線和下線,此時需將註冊中心標識爲非動態管理模式。

dubbo.registry.dynamic = false

服務提供者初次註冊時爲禁用狀態,需人工啓用。斷線時,將不會被自動刪除,需人工禁用。

dubbo-admin後臺啓動禁用操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章