1. Trampoline 概述
歷史上,通過在終端手動運行系統來了解其運行時狀態,是一種簡單的方式。在最佳情況下,我們使用腳本自動化了所有操作。
當然,DevOps 運動改變了這一切,並且幸運的是,我們的行業已經遠遠超出了這種方法。 Trampoline 是在 Java 生態系統中為 Unix 和 Windows 用户解決該問題的解決方案之一。
該工具建立在 Spring Boot 之上,旨在通過一個簡潔、現代的用户界面,幫助 Spring Cloud 開發者在日常開發工作中。
以下是其一些功能:
- 使用 Gradle 或 Maven 作為構建工具啓動實例
- 管理 Spring Boot 實例
- 在啓動階段配置 VM 參數
- 監控部署的實例:內存使用情況、日誌和跟蹤
- 向作者提供反饋
在本文中,我們將回顧 Trampoline 旨在解決的問題,並探討其實際應用。我們將進行一次引導式演示,涵蓋註冊新服務和啓動該服務的單個實例。
2. 微服務:單次部署已成過去
正如我們討論的,使用單次部署單元部署應用程序的時代已經過去。
這帶來了積極的影響,同時也帶來了負面影響。雖然 Spring Boot 和 Spring Cloud 有助於這一轉變,但我們需要注意的副作用也很多。
從單體架構向微服務架構的轉變極大地改善了開發人員組織應用程序的方式。
正如我們所知,與在一個包含 30 個類、在包中良好組織並具有相應單元測試的項目中打開項目相比,打開一個包含大量類的大型代碼庫,並且很容易變得複雜,是完全不同的。
更重要的是——可重用性、鬆耦合和分層原則也受益於這一演變。雖然這些好處廣為人知,但讓我們列出一些它們:
- 單一職責原則——在可維護性和測試方面非常重要
- 彈性——一個服務的故障不會影響其他服務
- 高可擴展性——可以部署需要大量服務的多個實例
但是,在使用微服務架構時,我們必須面對一些權衡,尤其是在網絡開銷和部署方面。
然而,重點關注部署,我們失去了單體架構的一個優勢——單次部署。為了在生產環境中解決這個問題,我們擁有大量的 CD 工具,這些工具將幫助我們並使我們的生活更輕鬆。
3. Trampoline:設置第一個服務
在本節中,我們將為 Trampoline 註冊一個服務,並展示所有可用的功能。
3.1. 下載最新發布版本
前往 Trampoline 倉庫的 發佈版本部分,我們可以下載最新的發佈版本。
然後,啓動 Trampoline,例如使用 mvn spring-boot:run 或 ./gradlew (或 gradle.bat) bootRun。
最後,可以通過訪問 http://localhost:8080 訪問 UI。
3.2. 註冊服務
一旦我們啓動了 Trampoline,,讓我們進入 “Settings” 選項卡,在那裏我們可以註冊我們的第一個服務。在 Trampoline 的源代碼中,我們找到了兩個微服務示例:“microservice-example-gradle” 和 “microservice-example-maven”。
要註冊服務,需要以下信息:“name”,“default port”,“pom 或構建位置”,“build tool”,“actuator 前綴”,以及 “VM 默認參數”。
如果決定使用 Maven 作為構建工具,則首先需要設置 Maven 位置。但是,如果決定使用 Gradle 包裝器,則必須將其放置在我們的 “microservices”* 文件夾中。除此之外,不需要任何其他操作。
在這個例子中,我們將設置這兩個:
隨時,我們可以通過單擊 “info” 按鈕來查看服務信息,或者通過單擊 “trash” 按鈕刪除它。
最後,為了享受所有這些功能,唯一的要求是在我們的 Spring Boot 項目中包含 “actuator starter”(參見片段中的示例),以及通過已知日誌屬性通過 “/logfile” 端點。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>3.3. 管理服務實例
現在,我們準備進入 實例 部分。在這裏,我們可以啓動和停止服務實例,並監控它們的狀態、跟蹤、日誌和內存消耗。
對於本教程,我們啓動之前註冊過的每個服務的實例:
3.4. 儀表盤
最後,我們快速瞭解一下 儀表盤 部分。在這裏,我們可以可視化一些統計信息,例如來自我們計算機或服務的內存使用情況,以及註冊或啓動的服務。
我們還可以監控設置部分是否已引入所需的 Maven 信息。
3.5. 反饋
最後但凡,我們可以找到一個“反饋”按鈕,它會將您重定向到 GitHub 倉庫,在那裏您可以創建問題或提出疑問和改進建議。
4. 結論
在本次教程中,我們討論了 Trampoline 旨在解決的問題。
我們還展示了其功能的概述,以及如何註冊和監控服務的簡要教程。
請注意,這是一個開源項目,歡迎您貢獻。