接上文,我們得到了服務提供者,user 微服務提供者,接下來我們要插件消費者來使用這個微服務
構建電影微服務
構建一個電影微服務,名稱ms-simple-consumer-movie
ms-simple-consumer-movie微服務
依賴和之前的提供者相同,需要增加的其他依賴,可以在後續 POM 裡面增加
最終得到項目骨架
項目骨架修改
首先把 application.properties 修改為 yml 文件結尾
在 application.yml 裡面修改服務端口為8010
建立幾個包,包括 model,Controller
增加 druid 的依賴
增加 yml 的數據源鏈接信息,雷同服務提供者
代碼部分
這個 User 對象和提供者一樣,這裡貌似有重複的地方,實際情況應該是和返回過來的 Json 對象進行匹配
在入口處,增加 RestTemplate 類的@Bean註解,這是為了能在 Controller 裡面引用該類,然後方便調用服務提供者的接口
最後來到 Controller 裡面進行調用
上面的代碼裡面,使用 RestTemplate 的getForObject方法,裡面傳入遠程的 URL,設定返回類型是 User,我們再瀏覽器裡面測試看看
運行與調試
首先打開服務提供者,然後打開服務調用者,最後在瀏覽器輸入http://localhost:8010/user/1
服務都已經打開
可以看到一個是8000端口,一個8010端口
可以看到正常調用
擴展
為項目增加監控,增加 Spring Boot Actuator,Spring Boot Actuator
提供很多監控端點,以http://{server}:{port}/{endpoint}的形式訪問
端點 | 描述 | http方法 |
---|---|---|
autoconfig | 顯示字段配置信息 | GET |
beans | 顯示應用程序上下文所有的 bean | GET |
configprops | 顯示@ConfiguratonProperties配置屬性列表 | GET |
dump | 顯示線程活動快照 | GET |
env | 顯示 環境變量 | GET |
health | 顯示 健康指標 | GET |
info | 顯示應用信息 | GET |
mappings | 顯示所有 URL 路徑 | GET |
metrics | 顯示應用度量標準信息 | GET |
shutdown | 關閉應用(默認不開啟) | POST |
trace | 顯示跟蹤信息 | GET |
增加依賴,這裡把提供者和消費者都增加這個依賴
然後訪問:
http://localhost:8000/health,http://localhost:8010/health
http://localhost:8000/info
將返回{}
需要返回更多信息,需要在 yml 裡面配置 info 的信息
這時返回的信息就是
至此為止,我們把服務提供和服務消費集成起來了,但我們在 RestTemplate 調用微服務的時候,我們是寫的硬編碼,這個很有問題,雖然我們可以把這個硬編碼寫到配置裡面去,但是還是存在問題,比如需要修改提供者的配置,消費者也需要修改,無法動態伸縮,那麼如何解決這個問題呢,請繼續關注後續文章