袁芳的學習筆記(3)基於Predix的微服務
作者:袁芳,北京華瑞特資訊科技有限公司
GE Predix支援微服務,本次通過微服務示例工程,瞭解如何構建、部署、擴充套件微服務。官網有兩個github工程,一個使用Apache CXF執行JAX-RS 2.0標準Java申明@GET,@PUT, @POST, @DELETE, 等,另一個使用Spring RestTemplate,他仍然使用原生的Spring宣告,例如@RequestMapping(method = RequestMethod.DELETE)。
兩個工程都利用了Spring的其他特性,包括在REST實現中運用了Spring安全過濾器,在之後的教程中,將會展示安全和授權的有用之處。
上圖為微服務模板,通過三步即可獲取一個Cloud Foundry的微服務:
(1)Git clone <project>
通過git clone命令從github中下載工程原始碼
(2)mvn clean package
通過該maven命令將原始碼進行打包
(3)cf push
通過Cloud Foundry的該命令將完成的打包推送到Predix雲端,以此實現雲端釋出。
通過上面的微服務模板,可以對其進行擴充套件以建立個性化的微服務雲端應用。
步驟:
(1)下載工程原始碼
1)確保Maven庫中的settings.xml檔案資訊正確
2)使用git下載工程原始碼
git clone https://github.com/PredixDev/predix-microservice-cf-jsr.git
cd predix-microservice-cf-jsr
或者
git clone https://github.com/PredixDev/predix-microservice-cf-spring.git
cd predix-microservice-cf-spring
3)通過Maven構建並打包
mvn clean package
注意:“mvn clean install”可能會執行整合對微服務的測試,而這有可能並不啟動這個測試。
(2)推送微服務到雲端
CloudFoundry的推送命令從manifest.yml檔案中獲取一些屬性資訊用於推送微服務,“manifest.yml”檔案是CloudFoundry
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html
簡言之,“manifest.yml”告訴“cf push”對應用要做什麼,包括:要建立多少個例項,需要為所需的應用開闢多少記憶體。也可以說,“manifest.yml”幫忙使用者自動化雲部署,尤其是一次性推送多應用的場景下。
編輯“manifest.yml”檔案,將“name”更換為自定義應用名稱,並且該應用名稱必須是唯一的(在Predix雲環境中),通過管理員許可權開啟CMD.exe,輸入cf push命令:
$ cf push<your-name>-predix-microservice-cf-jsr
系統反饋該微服務的URL,將其新增https://頭部,貼上到瀏覽器即可。
(3)訪問雲端應用
(4)通過Eclipse開啟工程
通過Eclipse或者EclipseSTS修改REST微服務或者將其在本地執行。
1)選擇File/Import選單
2)選擇Maven/ExistingMaven Projects並點選Next
3)選擇predix-microservice-cf-jsr路徑並點選Finish
(5)REST API
介面類:
介面實現類:
DefaultService註冊到 spring檔案:
(6)本地測試
2)右鍵點選predix-microservice-cf
3)選擇Run As / JavaApplication
4)如果是原型,選擇Application.java點選OK
或者:
5)在Eclise STS右鍵點選predix-microservice-cf工程選擇Run As / SpringBoot Application
(7)瀏覽結果
1)通過瀏覽器能夠看到"Greetingsfrom Predix Spring Boot CXF!"
2)點選“API explorer”檢視Swagge文件,微服務能夠通過/api url檢視自定義文件
3)通過/health url檢視微服務的Health
4)在/docs url檢視docs,使用Github,提供動態的index.html其能夠下載README.md
5)檢視Java Docs
6)確保停止在Eclipse的微服務以便為後續教程釋放埠。
參考資料:
https://predix-io.run.aws-jp01-pr.ice.predix.io/resources/tutorials/tutorial-details.html?tutorial_id=1523
GE數字集團的技術專家們會線上回答您的問題。
也請訪問我們在CSDN的Predix專區http://predix.csdn.net 瞭解更多Predix的內容和相關活動。