作者:袁芳,北京华瑞特信息技术有限公司
如果您还没有Predix试用帐号,请访问https://supportcentral.ge.com/esurvey/GE_survey/takeSurvey.html?form_id=18446744073709715720申请。请务必准确提供您的信息,我们会以邮件方式通知您注册结果。
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的特性文件,不是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
(5)REST API
接口类:
https://github.com/PredixDev/predix-microservice-cf-jsr/blob/master/src/main/java/com/ge/predix/solsvc/boot/service/cxf/DynamicService.java
接口实现类:
https://github.com/PredixDev/predix-microservice-cf-jsr/blob/master/src/main/java/com/ge/predix/solsvc/boot/service/cxf/DynamicServiceImpl.java
DefaultService注册到 spring文件:
https://github.com/PredixDev/predix-microservice-cf-jsr/blob/master/src/main/resources/META-INF/spring/predix-microservice-cf-jsr-cxf-context.xml
(6)本地测试
1)使用Eclipse发布应用,通过http://localhost:9092访问。
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
在使用中您有任何问题,请访问我们的论坛http://bbs.csdn.net/forums/GEPredix
GE数字集团的技术专家们会在线回答您的问题。
也请访问我们在CSDN的Predix专区http://predix.csdn.net 了解更多Predix的内容和相关活动。