- Eureka 是 Spring Cloud Netflix 提供的 服務註冊與發現 工具,負責管理微服務的註冊與查詢
- 主要由 Eureka Server(註冊中心)與 Eureka Client(微服務)組成:
- Eureka Server:提供微服務註冊與查詢機制,維護微服務的狀態
- Eureka Client:將自己註冊到 Eureka Server,並能動態發現其他微服務
-
官方文件:
-
相關文件:
- Git Flow 是一種結構化的 Git 工作流程,它提供完善的分支管理,確保開發、測試和正式環境的穩定性與可控性
團隊類型 | 分支名稱 | 角色 | 主要用途 | 合併來源 | 合併目標 |
---|---|---|---|---|---|
精簡工作流程 | main |
正式環境 | 最終穩定版 | develop |
- |
develop |
開發環境 | 日常開發 | feature/* 、bugfix/* |
main |
|
完整工作流程 | main |
正式環境 | 最終穩定版 | staging |
- |
staging |
測試環境 | 測試開發完成的功能 | develop |
main |
|
develop |
開發環境 | 日常開發 | feature/* 、bugfix/* |
staging |
# 1. 確保 develop 分支是最新的
git checkout develop
git fetch origin
git pull --rebase origin develop
# 2. 創建功能分支
git checkout -b YYYYMMDD-feature-新功能
# 3. 進行開發並提交
git add .
git commit -m "[feat] 實現某功能"
# 4. 在提交 PR 之前,確保分支是最新的
git fetch origin
git rebase origin/develop # 避免不必要的合併提交
# 5. 推送功能分支
git push -u origin YYYYMMDD-feature-新功能
# 6. 在 GitHub 上建立 PR,請求合併到 develop 分支
# (這步驟需要在 GitHub 上手動操作)
# 7. PR 通過後,同步本地 develop
git checkout develop
git fetch origin
git pull --rebase origin develop
# 8. 刪除已合併的功能分支
git branch -d YYYYMMDD-feature-新功能
git push origin --delete YYYYMMDD-feature-新功能
# 9. 確保 develop 最新後,開 PR 合併到 main
# (這步驟需要在 GitHub 上手動操作)
# 10. PR 合併到 main 後,同步本地 main
git checkout main
git fetch origin
git pull --rebase origin main
# 1. 從 main 創建緊急修復分支
git checkout main
git fetch origin
git pull --rebase origin main
git checkout -b YYYYMMDD-hotfix-問題
# 2. 修復問題並提交
git add .
git commit -m "[fix] 修復問題"
# 3. 推送 hotfix 分支,並建立 PR 合併到 main
git push -u origin YYYYMMDD-hotfix-問題
# 4. **(GitHub 上)** 建立 PR,請求合併到 main
# PR 審核通過後,main 會有最新修復
# 5. 本地同步 main
git checkout main
git fetch origin
git pull --rebase origin main
# 6. 同步修復到 develop
git checkout develop
git fetch origin
git pull --rebase origin develop
git rebase origin/main # 避免 merge commit
git push
# 7. 刪除已合併的 hotfix 分支
git branch -d YYYYMMDD-hotfix-問題
git push origin --delete YYYYMMDD-hotfix-問題
# 1. 確保 main 分支是最新的
git checkout main
git fetch origin
git pull --rebase origin main
# 2. 為當前最新的 commit 打標籤
git tag -a v0.0.1 -m "版本 0.0.1"
# 3. 推送標籤到遠端倉庫,觸發 GitHub Actions
git push origin --tags
- main.yml: 監聽新標籤事件,自動觸發持續部署流程
版本變更 | 說明 | 例子 |
---|---|---|
MAJOR | 破壞性變更,不相容舊版 | 1.0.0 → 2.0.0 |
MINOR | 新增功能,向下相容 | 1.1.0 → 1.2.0 |
PATCH | 修 bug,不影響功能 | 1.2.1 → 1.2.2 |
- 在伺服器上,建立存放
Eureka Service
的專用資料夾
sudo mkdir -p /opt/tata/eurekaservice
將 eurekaservice.jar 放入 /opt/tata/eurekaservice
在 /opt/tata/eurekaservice/ 目錄內,建立 Dockerfile
sudo touch /opt/tata/eurekaservice/Dockerfile
sudo chown -R ubuntu:ubuntu /opt/tata/eurekaservice/Dockerfile
完整 Dockerfile 可參考 doc/Dockerfile
cd /opt/tata/eurekaservice
docker build --no-cache --progress=plain -t eurekaservice .
docker run -di --name=eurekaservice --network tata-network -p 8761:8761 eurekaservice
docker logs -f --tail 1000 eurekaservice