1. 程式人生 > >袁芳的學習筆記(3)基於Predix的微服務

袁芳的學習筆記(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的微服務:

1Git clone <project>

通過git clone命令從github中下載工程原始碼

2mvn clean package

通過該maven命令將原始碼進行打包

3cf 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

的特性檔案,不是Predix新增的概念。詳細的“manifest.yml”檔案資訊參考:

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

5REST 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的內容和相關活動。