cloudfoundry_在Cloudfoundry上部署RESTful服务

cloudfoundry

在本文中,我们将使用Pivotal Cloud Foundry(PCF)开发人员在Cloudfoundry上部署RESTful服务。 由于创建静态Web服务不是本文的一部分,因此我已经创建了employee-service ,它具有静态后端,可以从GitHub进行克隆。

在将它部署到Cloudfoundry之前,让我们简要介绍一下。

Cloudfoundry

Cloud Foundry是一个开源云平台即服务(PaaS),开发人员可以在该平台上构建,部署,运行和扩展公共和私有云模型上的应用程序。 它最初是由VMware创建的VMware,现在是Pivotal软件的一部分。

现在,通过以下步骤,使用PCF Dev在本地工作站上设置轻量级PCF:

步骤1: 下载 cf-cli-installer_6.22.2_osx.pkg并将其安装在目录中,对我来说是/ Users / ArpitAggarwal / cloudfoundry

$ cd /Users/ArpitAggarwal/cloudfoundry/ 
$ sudo installer -pkg ./cf-cli-installer_6.22.2_osx.pkg -target /

步骤2:测试Cloudfoundry CLI是否成功安装:

$ cf help

步骤3:接下来,我们将下载PCF Dev并将其安装在我们之前创建的相同目录中,如下所示:

$ cd /Users/ArpitAggarwal/cloudfoundry/
$ unzip pcfdev-v0.22.0+PCF1.8.2-osx.zip
$ ./pcfdev-v0.22.0+PCF1.8.2-osx

开始4:启动PCF开发人员:

$ cd /Users/ArpitAggarwal/cloudfoundry/
$ cf dev start

上面的命令在我们运行PCF的工作站上启动一个虚拟机。

步骤5:从GitHub的目录中克隆员工服务 ,对我来说是/ Users / ArpitAggarwal /

$ cd /Users/ArpitAggarwal/
$ git clone https://github.com/arpitaggarwal/empoyee-service.git

步骤6:使用manifest.yml更新员工服务

$ cd /Users/ArpitAggarwal/employee-service
$ touch manifest.yml

上面创建的manifest.yml由PCF用于部署到本地工作站或公共云上。

步骤7:将以下内容复制到manifest.yml中

---
applications:
- name: empoyee-servicememory: 1Grandom-route: truepath: build/libs/empoyee-service-0.0.1.warbuildpack: https://github.com/arpitaggarwal/java-buildpack.git

上面指定的name属性是应用程序的名称。
path属性是应用程序的目录位置。
buildpack属性指向java-buildpack,PCF使用它来运行基于JVM的应用程序。

有关manifest.yml的更多信息,可以在这里进行探索。

步骤8:接下来,我们将构建应用程序,并在登录后将其推送到Cloudfoundry本地工作站,如下所示:

$ cd /Users/ArpitAggarwal/empoyee-service
$ empoyee-service git:(master) ./gradlew clean build
$ empoyee-service git:(master) ✗ cf login -a api.local.pcfdev.io --skip-ssl-validation
API endpoint: api.local.pcfdev.ioEmail> user
Password> pass$ cf push

上面指定的cf push命令推送应用程序或将对现有应用程序的更改同步到URL http://empoyee-service.local.pcfdev.io

应用程序是否已成功部署在Cloudfoundry上?

让我们通过查看最近的部署日志来验证它,我们可以在其中查看服务器启动状态,如下所示:

$ cd /Users/ArpitAggarwal/empoyee-service
$ cf logs empoyee-service --recent

我们还可以验证对其执行GET和POST请求的应用程序部署,如下所示:

GET请求以获取所有员工:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://empoyee-service.local.pcfdev.io/empoyee/get

POST请求以创建员工:

curl -H "Content-Type: application/json" -X POST -d '{"name": "Arpit Aggarwal","email":"aggarwalarpit.89@gmail.com"}' http://empoyee-service.local.pcfdev.io/employee/create

完整的源代码托管在github上 。

翻译自: https://www.javacodegeeks.com/2016/12/deploying-restful-service-cloudfoundry.html

cloudfoundry

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HH SaaS电商系统的线上服务商品库存和采购设计

文章目录线上服务商品库存和采购整体思路线上服务商品的采购单状态线上服务商品的出库单状态商家完成服务线上服务商品库存和采购整体思路 线上服务商品直接在商品编辑页面编辑库存数量即可,服务端自动生成类型为“调整入库”的入库单和类型为“调整出库”的出库单…

arm linux gif 显示_100ASK_IMX6ULL arm板子如何显示图片、汉字、划线、背景色

最近在研究基于imx6ull开发板,想让开发板支持显示图片、字符串、背景色的功能。 操作的主要步骤如下:移植设备树和驱动移植libjpeg库编写测试程序一、移植设备树和驱动开发板原厂SDK已经移植了lcd对应的设备树和驱动。具体可以参考韦东山老师的文章https…

动态代码生成 静态代码生成_将速度提升到自己的个人代码生成器中

动态代码生成 静态代码生成Speedment是一个开源工具包 ,可用于生成Java实体和管理器以与数据库进行通信。 如果您需要域模型的对象关系映射,那么这很好,但是在某些情况下,您可能希望使用数据库作为模板来生成完全不同的东西。 在本…

HH SaaS电商系统的库存调整单设计

为了更加灵活地变动商品的库存,以及其它原因导致系统库存数和实际库存数不一致,可以通过库存调整单进行校正。 简简单单设计,没有状态管理,不需要通过审核,直接变更库存数~ 原型设计 库存调整单列表 库存调整单详情…

mysql优化 运维_MySQL运维---MySQL优化

一、优化1、优化的角度2、优化的方向3、数据库优化思路4、MySQL优化介绍5、优化工具介绍二、操作系统优化1、top命令1)CPU2)内存3)slab分配器---Linux内存4)page cache5)swap分区修改成不使用swap分区:永久生效,修改配置文件:2、大页内存机制…

微基准测试 r_在您的构建过程中添加微基准测试

微基准测试 r介绍 作为一个行业,我们正在采用更高的透明度和更可预测的构建过程,以降低构建软件的风险。 持续交付的核心原则之一是通过反馈循环收集反馈。 在Dev9中 ,我们采用了与CD原则一致的“ 先知道 ”原则,这意味着我们&…

HH SaaS电商系统服务商品在移动端下单结算的交互设计

服务商品只能单独下单购买,不允许加入购物车我们知道服务商品有三种形式:线上服务、到店服务、上门服务,因为不同服务形式买家和卖家所需的信息不同,所以交互界面也会不同,前端需要判断当前服务商品的服务形式&#xf…

linux 远程备份mysql数据库_使用脚本自动化远程备份MySQL数据库

通常情况下、MySQL都需要备份,备份的方法有很多种。下面是我用脚本配合计划任务完成的自动备份远程的数据库。一、 确认备份方案:备份机:ip192.168.8.51数据库服务器:ip192.168.8.46备份的内容:对mysql的studydb、cour…

javafx动画_JavaFX动画工具

javafx动画好的,我想是时候让您讲一个小秘密了。 最近三个月左右,我从事一个私人项目,目标是创建一个工具,使我可以轻松地为Java桌面应用程序创建动画。 JavaFX在API级别上提供了出色的动画支持,但对于初学者甚至中级程…

HH SaaS电商系统的商品类目设计

文章目录商品的基础类目创建基础类目编辑基础类目删除基础类目启用/禁用基础类目商城的营销类目新增商城营销类目编辑商城营销类目营销类目关联商品店铺的营销类目新增营销类目营销类目关联商品编辑店铺营销类目类目启用规则(适用于全部类目)商品类目分为…

mysql 匹配单个字符串_MySQL中的字符串模式匹配

MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。标准的SQL模式匹配SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺…

dynamodb容器使用_使用DynamoDBMapper插入DynamoDB项目

dynamodb容器使用在上一篇文章中,我们使用DynamoDBMapper来将DynamoDB表映射到Java对象。 插入时,我们的动作几乎相同,但是方式更方便。 为了插入项目,您要做的就是使用对象映射器持久化对象 在我们的例子中,我们将创…

HH SaaS电商系统的品牌模块设计

品牌和商品基础类目属于多对多的关系创建品牌时必须关联商品基础类目,且只能关联三级类目,至少关联一种品牌只能由租户统一进行维护管理,供应商、商家、商城可以申请新品牌,但是由租户进行审核品牌被删除或者停用后,关…

mysql可以存布尔_哪个MySQL数据类型用于存储布尔值

由于MySQL似乎没有任何“布尔”数据类型,你滥用哪种数据类型来存储MySQL中的真/假信息?特别是在写入和读取PHP脚本的上下文中。随着时间的推移,我使用并看到了几种方法:tinyint,包含值0/1的varchar字段,包含…

java反射面试

1什么是反射? 反射是指在运行时动态地获取类的信息(包括类的成员变量、方法、构造函数等),并且可以通过反射调用类的方法、访问和修改类的属性,以及创建对象实例。 Java的反射机制提供了一种强大的能力,使得…

chameleon 算法_为了简单起见,Arquillian Chameleon

chameleon 算法使用Arquillian时,您需要做的一件事情就是定义要在哪个容器下执行所有测试。 这是通过在适配器的类路径中添加依赖项并取决于所使用的模式(嵌入式,托管或远程)来下载的来完成的。 他是应用程序服务器。 例如&…

电商分销系统设计

文章目录某赞的二级分销模式一、【一件代销】模式二、【推广代收】模式某猫的二级分销模式二级分销系统设计方案代销分销系统的设计方案方案一:销售行为和采购行为完全独立方案二:销售、采购、售后之间的业务行为相互关联推广分销系统的设计方案关于结算…

mysql函数创建与使用_mysql function函数创建与应用方法

这些语句创建存储子程序。要在MySQL 5.1中创建子程序,必须具有CREATE ROUTINE权限,并且ALTER ROUTINE和EXECUTE权限被自动授予它的创建者。如果二进制日志功能被允许,你也可能需要SUPER权限,请参阅20.4节,“存储子程序…

HH SaaS电商系统管理后台的商品规格编辑

类目规格删除或者新增 类目原来已有的规格被删除或者新增,那么原先的SKU全部需要重新生成,所以编辑时SKU信息无需展示,保留的规格信息也不必显示。 提交商品数据后,后端根据规格值名称进行匹配,如果匹配成功则更新SKU…

java中精确地小数_在Java等于方法中进行精确比较

java中精确地小数多年来,我一直在处理旧版Java代码,因此遇到了微妙的逻辑和性能问题,这些问题可以追溯到不正确覆盖的Object.equals(Object)方法。 尽管“等于”方法背后的概念看似简单,但Josh Bloch在《 有…