SpringCloud微服務架構-第二節

JSON 技術 信解行證 信解行證 2017-10-22

接上文,我們得到了服務提供者,user 微服務提供者,接下來我們要插件消費者來使用這個微服務

構建電影微服務

構建一個電影微服務,名稱ms-simple-consumer-movie

SpringCloud微服務架構-第二節

ms-simple-consumer-movie微服務

依賴和之前的提供者相同,需要增加的其他依賴,可以在後續 POM 裡面增加

SpringCloud微服務架構-第二節

依賴

最終得到項目骨架

SpringCloud微服務架構-第二節

電影微服務項目骨架

項目骨架修改

首先把 application.properties 修改為 yml 文件結尾

application.yml 裡面修改服務端口為8010

建立幾個包,包括 modelController

增加 druid 的依賴

增加 yml 的數據源鏈接信息,雷同服務提供者

代碼部分

這個 User 對象和提供者一樣,這裡貌似有重複的地方,實際情況應該是和返回過來的 Json 對象進行匹配

SpringCloud微服務架構-第二節

用戶模型

在入口處,增加 RestTemplate 類的@Bean註解,這是為了能在 Controller 裡面引用該類,然後方便調用服務提供者的接口

SpringCloud微服務架構-第二節

最後來到 Controller 裡面進行調用

SpringCloud微服務架構-第二節

上面的代碼裡面,使用 RestTemplate 的getForObject方法,裡面傳入遠程的 URL,設定返回類型是 User,我們再瀏覽器裡面測試看看

運行與調試

首先打開服務提供者,然後打開服務調用者,最後在瀏覽器輸入http://localhost:8010/user/1

SpringCloud微服務架構-第二節

服務都已經打開

可以看到一個是8000端口,一個8010端口

SpringCloud微服務架構-第二節

可以看到正常調用

擴展

為項目增加監控,增加 Spring Boot Actuator,Spring Boot Actuator
提供很多監控端點,以http://{server}:{port}/{endpoint}的形式訪問

端點描述http方法
autoconfig顯示字段配置信息GET
beans顯示應用程序上下文所有的 beanGET
configprops顯示@ConfiguratonProperties配置屬性列表GET
dump顯示線程活動快照GET
env顯示 環境變量GET
health顯示 健康指標GET
info顯示應用信息GET
mappings顯示所有 URL 路徑GET
metrics顯示應用度量標準信息GET
shutdown關閉應用(默認不開啟)POST
trace顯示跟蹤信息GET

增加依賴,這裡把提供者和消費者都增加這個依賴

SpringCloud微服務架構-第二節

然後訪問:

http://localhost:8000/health,http://localhost:8010/health

SpringCloud微服務架構-第二節

http://localhost:8000/info將返回{}

需要返回更多信息,需要在 yml 裡面配置 info 的信息

SpringCloud微服務架構-第二節

這時返回的信息就是

SpringCloud微服務架構-第二節

至此為止,我們把服務提供和服務消費集成起來了,但我們在 RestTemplate 調用微服務的時候,我們是寫的硬編碼,這個很有問題,雖然我們可以把這個硬編碼寫到配置裡面去,但是還是存在問題,比如需要修改提供者的配置,消費者也需要修改,無法動態伸縮,那麼如何解決這個問題呢,請繼續關注後續文章

相關推薦

推薦中...