在 Cloudfoundry 上部署 RESTful 服务

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(365)   2023-09-08 13:19:08

在本文中,我们将使用 Pivotal Cloud Foundry (PCF) Dev 在 Cloudfoundry 上部署 RESTful 服务。由于创建一个宁静的网络服务不是这篇文章的一部分,我已经创建了 employee-service,它有一个静态后端并且可以从 GitHub 克隆。

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

Cloudfoundry

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

现在让我们使用 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 Dev:

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

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

第 5 步: 从 GitHub 的目录中克隆 employee-service,对我来说是 /Users/ArpitAggarwal/

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

第 6 步:使用 manifest.yml 更新 employee-service

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

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

第七步:将以下内容复制到manifest.yml中:

---
applications:
- name: empoyee-service
  memory: 1G
  random-route: true
  path: build/libs/empoyee-service-0.0.1.war
  buildpack: https://github.com/arpitaggarwal/java-buildpack.git

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

有关 manifest.yml 的更多信息,您可以在此处 探索。

Step 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.io

Email> 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 上。

标签2: Java教程
地址:https://www.cundage.com/article/jcg-deploying-restful-service-cloudfoundry.html

相关阅读

Java HashSet 教程展示了如何使用 Java HashSet 集合。 Java哈希集 HashSet 是一个不包含重复元素的集合。此类为基本操作(添加、删除、包含和大小)提供恒定时间性...
SpringApplicationBuilder 教程展示了如何使用 SpringApplicationBuilder 创建一个简单的 Spring Boot 应用程序。 春天 是用于创建企业应...
通道是继 buffers 之后 java.nio 的第二个主要新增内容,我们在之前的教程中已经详细了解了这一点。通道提供与 I/O 服务的直接连接。 通道是一种在字节缓冲区和通道另一端的实体(通...
课程大纲 Elasticsearch 是一个基于 Lucene 的搜索引擎。它提供了一个分布式的、支持多租户的全文搜索引擎,带有 HTTP Web 界面和无模式的 JSON 文档。 Elasti...
解析器是强大的工具,使用 ANTLR 可以编写可用于多种不同语言的各种解析器。 在这个完整的教程中,我们将: 解释基础:什么是解析器,它可以用来做什么 查看如何设置 ANTLR 以便在 Java...
Java 是用于开发各种桌面应用程序、Web 应用程序和移动应用程序的最流行的编程语言之一。以下文章将帮助您快速熟悉 Java 语言,并迈向 API 和云开发等更复杂的概念。 1. Java语言...
Java中的继承是指子类继承或获取父类的所有非私有属性和行为的能力。继承是面向对象编程的四大支柱之一,用于提高层次结构中类之间的代码可重用性。 在本教程中,我们将了解 Java 支持的继承类型,...
Java Message Service 是一种支持正式通信的 API,称为 网络上计算机之间的消息传递。 JMS 为支持 Java 程序的标准消息协议和消息服务提供了一个通用接口。 JMS 提...
之前,我介绍了spring 3 + hibernate 集成 示例和struts 2 hello world 示例。在本教程中,我将讨论在将 spring 框架与 struts 与 hibern...
Java 项目中的一项常见任务是将日期格式化或解析为字符串,反之亦然。解析日期意味着你有一个代表日期的字符串,例如“2017-08-3”,你想把它转换成一个代表 Java 中日期的对象,例如Ja...