Colorly | 2. Colorly 架構介紹

Colorly | 2. Colorly 架構介紹

Colorly 是一個提供照片代表色分析的 Web 專案, 其核心功能是讓用戶上傳照片, 由程式計算該照片之代表色碼, 並提供用戶上傳, 瀏覽, 蒐藏等功能。

本專案使用 Spring Cloud 微服務架構開發, 並提供相應的觀測平台。

Colorly 的架構

後面經過一些調整後, 再次補充到 Infra Layer 的圖片, 整個伺服器唯一台 windows server, 裡面藉由 vmware 搭建數台 vm 分離環境, 並由 nginx 作為 reverse proxy。

而針對 uat 環境的 vm 與服務, 以及監控的 console 則不開放外部訪問, 僅於內網中使用與測試。

Colorly 加上 Infra 的架構

選用技術

前端

  • Vue3 + ElementPlus
  • Nginx reverse proxy

後端

  • Java 17
  • Spring Boot 3.4.5
  • Spring Cloud 2024.0.1
  • Spring Security + Oauth2

中間件

  • Consul 服務發現
  • RabbitMq

儲存

  • Mysql 8
  • Redis
  • MinIO Bucket

監控平台

  • Jaeger + Microceter
  • Promethues + Grafana
  • EFK

設計上包含幾個重點:

  • 以 Consul + Spring Cloud 做微服務的基礎架構
  • Redis 作為 jwt 後踢前與 service cache, lazy loading 使用
  • RabbitMq 用於非同步事件, OutBox Pattern 和 Error Log 處理
  • MinIO 用於儲存照片

後面的章節,我會挑選幾個重點內容分享