字體:小 中 大 | |
|
|
2021/06/25 08:49:13瀏覽1381|回應0|推薦7 | |
就 Java 而言,打造微服務架構最快速的方法就是 Spring Boot + Spring Cloud + Docker,因為這三項技術最容易接觸到,其中 Spring Boot 已經成為 Web 前端的標準框架,而 Docker 是上雲端的基礎。當然在 Java 微服務架構上面,算是三足鼎立狀態,除了 Spring Cloud 之外,還有 Jboss WildFly Swarm 和 J2EE KumuluzEE,因為大家對於 Spring Boot 比較熟悉,所以就延續到 Spring Cloud 上面。
在基本架構上,我們會使用 Spring Boot 做微服務開發,使用 Spring Cloud Eureka 來實現微服務的註冊與發現,使用 Spring Cloud Hystrix 的斷路器功能來實現微服務容錯,使用 Spring Cloud Ribbon 實現微服務間的負載均衡,使用 Spring Cloud Zuul 實現微服務網關,使用 Spring Cloud Config 作為分布式配置中心,使用 Swagger 隊微服務進行測試,並使用 Jenkins 的持續集成功能來實現自動化部署。 Spring Boot 的特點有使用獨立 Jar 檔案部署,而不是 war 檔案,所以不會牽一髮而動全身,同時內勘 Servlet 容器,不須單獨部署 Tomcat。與其他主流框架整合時無須另外配置文件。只有一個 application.properties 配置文件,沒有其他 XML 配置文件。 老一代的網站架構是 LAMP (Linux-Apache-MySQL-PHP),新一代已經變成 SSM (Spring+Spring MVC+MyBatis),真是改朝換代了。例如 EIP 第一品牌 Liferay 也是使用 Spring Boot 框架。Spring Cloud 版本以倫敦地名來命名,SR 代表正式版本。Eureka 是由 Netflix 所開發的微服務註冊與發現框架,而 Ribbon 和 Zuul 也是來自 Netflix,所以 Spring Cloud 真是 Netflix 的影子分身。 在 Docker 中對開發人員來講,Dockerfile 和 DockerImage 是最重要的兩部分, 相對應地就是如何搭建你的系統架構,而 Docker Registry 就像 Git 一樣,可以是公有的或私有的。網路是 Docker 比較複雜的部份,尤其大家紛紛從 Docker Swarm 轉換成 Kubernets。在整合測試上,可以使用 Swagger-UI 與 API 接口進行測試。使用 Jenkins 可以透過 plugin 串接 Github 和 DockerHub,接著可以部署到測試和正式環境,因為微服副的程式數量是倍數成長,自動化部署顯得異常重要。 |
|
( 創作|散文 ) |