基於 CSE 的微服務架構實踐:基礎架構
“動手” 開始做對於專案的推動作用,遠大於 “思考” 如何做。在 單體應用微服務改造實踐 中,分析了一種“持續迭代演進”進行微服務改造的方法學,這個方法學同樣適用於從頭開始進行微服務開發。
CSE提供了非常多場景的開發支援,對於開發者,應該儘可能選擇統一的技術棧,這樣技術積累會比較快,不同微服務開發者之間也能夠更好的進行交流和共享經驗。CSE推薦的技術棧有三種:
-
基於CSE的輕量級微服務架構
-
基於Spring Boot + CSE輕量級微服務架構
-
基於Spring Boot的Web技術棧微服務架構
上述架構均採用 CSE執行時 這種處理流程,只是底層依賴的HTTP伺服器不同,以及上層依賴的元件不同。輕量級架構的HTTP伺服器和上層元件都相對簡單,更加節省資源,執行也更加高效;Spring Boot架構下,則能夠使用更多的元件,滿足更多場景的需要。兩種技術棧的微服務是可以並存和相互訪問的。
對於Web應用,建議採用靜態頁面技術(html+js+css等)設計UI,而不要採用動態頁面技術(比如jsp等)。因為靜態頁面部署方式更加靈活,更能夠適配不同的微服務部署架構。
基礎的微服務彈性架構
基礎彈性架構包括接入層和業務層。接入層負責進行域名解析、路由轉發,常用的技術包括DNS,ELB、LVS等。業務層的所有服務均採用多例項部署,解決效能問題和防止單點故障。
靜態頁面部署到邊緣服務
靜態頁面可以部署到閘道器裡面。CSE的Edge Service可以直接掛載靜態頁面。
靜態頁面部署到系統外部
靜態頁面可以部署業務層外部。比如有些產品,頁面是第三方開發的,業務層對於第三方是一個黑盒,只公佈了REST介面供第三方呼叫。有些產品靜態頁面不是第三方開發的,他們有自己的nginx伺服器做為ELB,把靜態頁面部署到nginx裡面。
靜態頁面部署到系統內部
還可以將靜態頁面作為一個微服務,部署到業務層。閘道器負責轉發靜態頁面請求。