很多時候,你根本不會知道你服務在哪臺實體機上執行,也不知道現在用到哪一版
所以在微服務系統架構中...監控管理是非常重要的一環
其實在 SpringBoot中有內建 提供非常多的資訊跟一些簡單的服務管理功能
後來有一個團隊做了不錯看的 UI 出來, 就是 SpringBoot Admin 也跟 Spring Cloud 做了不錯的整合, 就算不用 SpringCloud 單獨使用也非常好用.
Server 端
首先我再建立個新專案叫 admin
專案的 build.gradle 如下
我們加上了 spring-boot-admin-server 這是監控端, spring-boot-admin-server-ui 就是 UI 啦
然後我們啟動程程序加上
加上了 EnableAdminServer 就可以了
啟動之後 打開
http://localhost:8080
然後當你用 Chrome 打開頁面的時候, 會跳出下面通知接收的詢問
這邊我們先按允許
Client 端
客戶端更簡單, 只需要引入 spring-boot-admin-starter-client 套件
application.yml 我們改一下 port 然後加上 client 的配置讓他知道 server 在哪
還有我們給應用程式一個名稱 bookservice 之後比較好辨識
接下來只要啟動程序就可以了, 你可以看到我們
畫面中我們的 bookservice 是啟動狀態, 同時狀態變動的時候 springboot admin 也會透過 chrome 的機制來通知我們
是不是感覺安心很多了呢? 至少不會發生服務掛掉一天一夜沒人發現這種鳥事。
Client 端 安全機制
但是 Client 端的 port 跟 api 是一樣的, 所以外面的人也可以透過這個 port 來監控你的應用
所以我們再做一點手腳來保護
簡單一點的呢....就直接加上
然後配置檔 application.yml 就改成 這樣
management.security.enabled 一定要開啟, 不開啟等於沒有生效
security 這邊就是 basicAuth
admin.client 這邊就是讓 server 端可以透過 basicAuth 正常存取 Client 的資訊
閱讀更多 Java高級開發工程師 的文章