袁芳的学习笔记(3)基于Predix的微服务
来源:互联网 发布:ccs软件最新软件 编辑:程序博客网 时间:2024/04/30 07:46
作者:袁芳,北京华瑞特信息技术有限公司
如果您还没有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的内容和相关活动。
- 袁芳的学习笔记(3)基于Predix的微服务
- 袁芳的学习笔记(6)基于Predix的在线分析服务
- 袁芳的学习笔记(7)基于Predix Machine的物联网应用场景入门学习
- 袁芳的学习笔记(1)Predix配置开发环境
- 袁芳的学习笔记(2)Predix开发测试工具
- 袁芳的学习笔记(4)Predix对象数据库Blobstore
- Predix微服务介绍
- Predix微服务架构下的用户对微服务权限控制实践
- 搭建一个开发Predix软件的Windows系统(3)Predix版的Hello World
- 基于Predix平台开发微服务应用需要服务发现框架么?
- 基于Spring Cloud的微服务构建学习-1 基础知识
- 如何设计Predix的应用--基于原子设计模式(Atomic design)
- 基于Predix开发app的设计思路1
- 基于Predix开发app的设计思路2
- 基于Predix云远程控制边缘节点的实践
- 微服务-学习笔记
- 微服务学习笔记
- 基于微服务架构的技术实践(附PPT)
- onbounce事件
- Cas Server-二次开发(重写源码)
- HTML-CSS基础入门-第十九天(CSS-开发工具)
- onstart事件
- 安卓存储本地文件
- 袁芳的学习笔记(3)基于Predix的微服务
- 禁止网页复制
- 网页禁止剪切事件
- 对象拖动事件
- map 遍历key 与 value
- Window prompt()方法
- Elasticsearch性能优化官方建议
- Git 遇到了 early EOF index-pack failed 问题
- 使用jsencrypt实现参数的前端加密